線性表的順序存儲結構,指的是用一段連續的存儲單元依次存儲線性表的數據元素。
因為是連續的存儲單元,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 }