Fork me on GitHub

线性表的抽象数据类型描述

代码如下

 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 }

 

posted @ 2015-08-10 21:13  夏成都  阅读(866)  评论(0编辑  收藏  举报