データ構造(C言語版)-静的チェーンテーブルの実装(一部実装)

1305 ワード

本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.注:简単に书くために、私はC++を使って実现して、C言语とあまり违いがなくて、参考に供して、一部の主要な机能だけを実现して、残りは机能をまねて自分で追加することができます;完全なコード:
#include
using namespace std;
#define MAXSIZE 10//       
#define SUCCESS 1//    
#define ERROR -1//    
typedef int ElemType;//      
int STATUS=0;//      ,             ,0    ,1       
typedef struct SL{
	ElemType elem;
	int cur;
}list;
int ListLength(SL* list);
//      
int Malloc_SL(SL* list){
	int i=list[0].cur;
	if(list[0].cur){
		list[0].cur=list[i].cur;
	}
	return i;
}
//      
void Free_SL(SL* list,int i){
	list[i].cur=list[0].cur;
	list[0].cur=i;
}

//1-       (             )
void InitList_SL(SL *list){
	if(STATUS==1){
		cout<ListLength(list)+1){
		cout<ListLength(list)){
		return ERROR;
	}
	k=MAXSIZE-1;
	for(j=1;j<=i-1;j++){
		k=list[k].cur;
	}
	list[j].elem=0;
	j=list[k].cur;
	list[k].cur=list[j].cur;
	Free_SL(list,j);
	return SUCCESS;

}
//4-       
int ListLength(SL* list){
	int j=0;
	if(STATUS==0){
		cout<ListLength(list)){
		cout<>n;
	switch(n){
		case 1:
			InitList_SL(list);
			menu(list);
		case 2:
			cout<>e;
			cout<>i;
			ListInsert(list,i,e);
			menu(list);
		case 3:
			cout<>i;
			DeleteList(list,i);
			menu(list);
		case 4:
			cout<>i;
			cout<