线性表的抽象数据类型描述
代码如下
1 //抽象数据类型线性表的定义 2 #include <studio.h> 3 /*-------------------初始化线性表-----------------------*/ 4 void InitList(SqList *&L) 5 { 6 L=(SqList*)malloc(sizeof(SqList)); 7 L->length=0; 8 } 9 /*--------------------销毁线性表,释放内存空间----------------------*/ 10 void DestroyList(SqList *&L) 11 { 12 free(L); 13 } 14 /*------------判断线性表是否为空表,空表返回真,否则返回假---------------*/ 15 bool ListEmpty(SqList *L) 16 { 17 return(L->length=0); 18 } 19 /*-------------------求线性表的长度-----------------------*/ 20 int ListLength(SqList *L) 21 { 22 return(L->length); 23 } 24 /*--------------------输出线性表----------------------*/ 25 void DispList(SqList *L) 26 { 27 int i; 28 for(i=0;i<L->length;i++) 29 printf("%d",L->data[i]); 30 printf("\n"); 31 } 32 /*--------------------求线性表中某个元素的值,返回第i个元素的值----------------------*/ 33 bool GetElem(SqList *L,int i,ElemType &e) 34 { 35 if(i<1||i>L->length) 36 return false; 37 e=L->data[i-1]; 38 return true; 39 } 40 /*----按元素之查找,返回L中第一个值域与e相等的序号,若这样的元素不存在,则返回值为零-----*/ 41 int LocateElem(SqList *L,ElemType e) 42 { 43 int i=0; 44 while(i<L->length&&L->data[i]!=e) 45 i++; 46 if(i>=L->length) 47 else 48 return i+1; 49 } 50 /*------------插入数据元素,在L的第i个元素之前插入新的元素-------------*/ 51 bool ListInsert(SqList *&L,int i,ElemType e) 52 { 53 int j; 54 if(i<1||i>L->data[j-1]) 55 L->data[j]=L->data[j-1]; 56 L->data 57 } 58 /*------------------删除数据元素,删除L的第i个元素------------------------*/ 59 bool ListDelete(SqList *&L,int i,ElemType &e) 60 { 61 int j; 62 if(i<1||i>L->length) 63 return false; 64 i--; 65 e=L->data[i]; 66 for(j=i;j<L->length-1;j++) 67 L->data[j]=L->data[j+1]; 68 L->length--; 69 return true; 70 }