データ構造(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<