一、什么是線性表
線性表是具有相同數據類型的n個數據元素的有限序列。
即每個元素類型所占的空間大小相同。有次序的有限序列。
如:線性表L
L=(a₁,a₂,a₃....,ai,ai+1..,an)
除第一個元素外,每個元素有且只有一個直接前驅,除最后一個元素外,每個元素有且只有一個直接后繼。a₁為a₂的直接前驅,a₃為a₂的直接后繼。
二、順序表
順序表:
| a₁ |
| a₂ |
| a₃ |
| ... |
| an |
線性表的存儲順序又稱順序表。它是一組地址連續的存儲單元依次存儲在線性表中的數據元素。
線性表的順序存儲結構是一種隨機存取的存儲結構。
//線性表的描述
#define MaxSize 50 //定義線性表的最大長度 typedef struct{ Elemtype data[MaxSize]; //順序表的元素 int length; //順序表的當前長度 }SqList; // 順序表的類型定義
對線性表的操作
1.插入操作:在第i(1<i<L.length)個位置插入新元素e
算法思想:
·判斷在范圍i內是否有效
·判斷空間存儲是否還有位置
·第i個元素及以后元素向后移
·在位置i處放入e
·表長+1
(線性表的位序從1開始,數組元素的下標從0開始)

2.刪除元素

3.查找元素

bool
ListInsert(
SqList &
L,
int i,
ElemType e){
if(
i<
1||
i<length+
1)
//判斷i的范圍是否有效
return
false;
e=
L.data[i-
1];
//將刪除的元素賦值給e
for(
int j=i;
j<
L.length;j++)
//將i元素及向后移
L.data[j-
1]=
L.data[j];
L.length--;
return ture;
}
