线性表的顺序存储结构--用数组实现

线性表的顺序存储结构,指的是用一段连续的存储单元依次存储线性表的数据元素。 
因为是连续的存储单元,so,,可以使用一维数组来实现它的顺序存储结构。

 1 #include <stdio.h>
 2 #define MAXSIZE 20 // 定义了线性表的最大长度20 线性表的长度<=数组的长度
 3 
 4 typedef struct ArrayList
 5 {
 6     int pBase[MAXSIZE];
 7     int length;
 8 } Arr,*pArr;
 9 
10 void initArray(pArr p);
11 bool addElement(pArr p,int val);//向线性表添加元素
12 bool insertElement(pArr p,int i,int vall);//指定位置插入元素
13 void showElement(pArr pl);//显示线性表中的全部元素
14 bool deleteElement(pArr p,int i ,int *val);//删除指定位置的元素
15 
16 int mian()
17 {
18     Arr arr;
19     int i;
20     initArray(&arr);
21     addElement(&arr,66);
22     addElement(&arr,166);
23     addElement(&arr,366);
24     addElement(&arr,666);
25     showElement(&arr);
26     insertElement(&arr,2,-90);
27     showElement(&arr);
28      deleteElement(&arr ,2,&i);
29     showElement(&arr);
30     printf("删除的元素是 %d\n",i);
31     return 0;
32 }
33 
34 /*初始化线性表*/
35 void initArray (pArr p)
36 {
37     p->length=0;
38 }
39 /*线性表末尾添加元素*/
40 bool addElement (pArr p,int val)
41 {
42     if(p->length==MAXSIZE)
43     {
44         return false;
45     }
46     p->length++;
47     p->pBase[p->length-1] = val;
48     return true;
49 }
50 /*线性表指定位置插入元素*/
51 bool insertElement (pArr p,int i,int val)
52 {
53     if(p->length==MAXSIZE)
54     {
55         return false;
56     }
57     if(i<=p->length)
58     {
59         for(int k=p->length-1;k>=i-1;k--)
60         {
61             p->pBase[k+1] = p->pBase[k];
62         }
63     }
64     p->pBase[i-1] = val;
65     p->length++;
66     return true;
67 
68 }
69 /* 删除线性表中的指定元素*/
70 bool deleteElement(pArr p,int i,int * val)
71 {
72     if(p->length==0)
73     {
74         return false;
75     }
76     *val=p->pBase[i-1];
77 
78     if(i<=p->length)
79     {
80         for(int k=i;k<p->length;k++)
81         {
82             p->pBase[k-1] = p->pBase[k];
83         }
84     }
85     p->length--;
86     return true;
87 }
88 /*线性表展示元素*/
89 void showElement(pArr p)
90 {
91     int i;
92     for(i=0;i<p->length;i++)
93     {
94         printf("%d",p->pBase[i]);
95     }
96     printf("\n");
97     return;
98 }

猜你喜欢

转载自www.cnblogs.com/CheeseIce/p/10554113.html