码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构之线性表:顺序存储

时间:2015-01-04 14:55:28      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

SeqList.h

 1 #define ListSize 100
 2 
 3 typedef int DataType;
 4 typedef struct {
 5     DataType list[ListSize];
 6     int length;
 7 }SeqList;
 8 
 9 void InitList(SeqList *L)
10 /* 将线性表初始化为空的线性表只需要把线性表的长度length置为0 */
11 {
12     L->length=0;
13 }
14 
15 int ListEmpty(SeqList L)
16 /* 判断线性表是否为空,为空返回1,否则返回0 */
17 {
18     return !L.length;
19 }
20 
21 int ListLength(SeqList L)
22 /* 返回线性表的长度 */
23 {
24     return L.length;
25 }
26 
27 void DestroyList(SeqList *L)
28 {
29     L->length=0;
30 }
31 
32 
33 int GetElem(SeqList L, int i, DataType *e)
34 /* 查找线性表中第i个元素。查找成功将该值返回给e,并返回1表示成功;否则返回-1表示失败。 */
35 {
36     if(i<1 || i>L.length)
37         return -1;
38 
39     *e=L.list[i-1];
40     return 1;
41 }
42 
43 int LocateElem(SeqList L, DataType e)
44 /* 查找线性表中元素值为e的元素,查找成功将对应元素的序号返回,否则返回0表示失败。 */
45 {
46     int i;
47 
48     for(i=0; i<L.length; i++)
49         if(L.list[i] == e)
50             return i+1;
51 
52     return 0;
53 }
54 
55 int InsertList(SeqList *L, int i, DataType e)
56 /* 在顺序表的第i个位置插入元素e,插入成功返回1,如果插入位置不合法返回-1,顺序表满返回0 */
57 {
58     int j;
59 
60     if(i<1 || i>L->length) {
61         printf("插入位置i不合法!\n");
62         return -1;
63     } else if(L->length == ListSize) {
64         printf("顺序表已满,不能插入元素。\n");
65         return 0;
66     } else {
67         for(j=L->length; j>=i; j--)
68             L->list[j]=L->list[j-1];
69 
70         L->list[i-1]=e;
71         L->length++;
72 
73         return 1;
74     }
75 }
76 
77 int DeleteList(SeqList *L, int i, DataType *e)
78 /* 将顺序表的第i个位置的元素值返回给e,并删除该元素,删除成功返回1,如果删除位置不合法返回-1,顺序表空返回0 */
79 {
80     int j;
81 
82     if(L->length == 0) {
83         printf("顺序表已空不能进行删除!\n");
84         return 0;
85     } else if(i<1 || i>L->length) {
86         printf("删除位置不合适!\n");
87         return -1;
88     } else {
89         *e=L->list[i-1];
90 
91         for(j=i; j<L->length; j++)
92             L->list[j-1]=L->list[j];
93 
94         L->length--;
95 
96         return 1;
97     }
98 }

 

数据结构之线性表:顺序存储

标签:

原文地址:http://www.cnblogs.com/ilinunix/p/4200960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!