c语言描述简单的线性表,获取元素,删除元素,

 1 //定义线性表
 2 #define MAXSIZE 20
 3 typedef int ElemType;
 4 typedef  struct 
 5 {
 6         ElemType data[MAXSIZE];  //这是数组的长度,从0开始,也就是最大长度 
 7         int length;              //这是线性表的长度,表示线性表已经存储了多少个元素 
 8          
 9 }SqList;
10 /*
11 ************************** 
12 **************************
13 */
14 
15 
16 
17 //返回线性表L的元素  
18 typedef int Status;
19 Status GetElem1 (SqList L,int i,ElemType *e)
20 {
21      if (L.length==0 || i<i || i>L.length) 
22                      return -1;   
23                      
24          *e = L.data[i-1];
25          return 0; 
26 }
27 
28 
29 
30 
31       
32 /*
33 ************************** 
34 **************************
35 */     
36 
37 
38 //元素插入线性表
39 Status ListInsert (SqList *L,int i,ElemType e)
40 {
41      int k;
42      if (L->length == MAXSIZE)    //表示线性表的最大长度已经等于数组的长度,线性表已经满 
43           return -1;      
44           
45      if(i < 1 || i > L->length+1)    //表示要插入的位置i 不在线性表的范围
46          return -1;
47     
48      if (i <= L->length)      //若要插入的位置不在线性表的尾端 
49         for (k = L->length - 1;k >= i-1 ;k--)     //就是插入位置后面的元素一个个往后面挪出一个位置,先是线性表最后一个元素挪 
50                L->data[k+1] = L->data[k];
51                
52      L->data[i-1] = e; // 插入的i是相对于线性表来说的下标从1开始,data是数组,下标从0开始,所以辅助到i-1上  
53      L->length++;    //表示线性表的长度加上1 
54      return 0; 
55 }      
56 
57 
58 /*
59 ************************** 
60 **************************
61 */
62 
63 //元素删除 
64 Status ListDelete(SqList *L,int i,ElemType *e)
65 {
66       int k;
67       if (L->length ==0)    //判断线性表是否为空 
68         return -1;
69       if (i>L->length || i<1)   //判断要删除的元素是否在线性表中 
70         return -1;
71       *e = L->data [i-1];    //先把数组的数组拿出来赋值给e 
72       
73       if (i< L->length) 
74             for (k=i;k<L->length;k++)   //直接把药删除的元素后面的元素直接往前移动 
75                L->data[k-1]=L->data[k];   
76     
77          L ->length --;      //最后一步是把线性表的长度减去1 数组的长度不用减,英文已经用maxsize定义了。 
78     
79  } 
80  
81  
82  int main()
83  {
84      return 0;
85  }
86       
87        

   简单的线性表增删,本人是菜鸟,有什么问题请评论,我真的希望大家能给点指点,谁也是从菜鸟开始的,

   做技术的没有什么好嘲笑的,技术的东西是永远学不完的,日新月异。

   技术靠一点一点积累的,大牛也是這样,

   希望我也能加油。

posted @ 2016-05-01 00:24  MrPat  阅读(2094)  评论(0编辑  收藏  举报