线性表的顺序存储结构,指的是用一段连续的存储单元依次存储线性表的数据元素。
因为是连续的存储单元,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 ",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(" "); 97 return; 98 }