資料結構 動態線性表操作(順序表)

2021-08-17 07:57:36 字數 1172 閱讀 4332

#define list_init_size  10   // 線性表儲存空間的初始分配量

#define listincrement 5 // 線性表儲存空間的分配增量

//動態線性表

typedef structsqlist;

初始化l為空表

int initlist(sqlist &l)

**順序線性表l,空間釋放,數值置0

int destroylist(sqlist &l)

清空線性表

int clearlist(sqlist &l)

l),判斷是否為空,若是返回1

int listempty(sqlist l)

求表l的長度

int listlength(sqlist l)

獲得線性表l中的第i個元素

listdata getelem(sqlist l,int i)

查詢x在表l中的位置

int locateelem(sqlist l,listdata x)

isin(l,x)判斷x是否在表中,若是返回1,否則返回0

int isin(sqlist l,listdata x)

return found;

} 求x的直接後繼, 如果x在表l中且

//有直接後繼,函式值返回其直接後繼的位置,否則返回-1

int nextelem(sqlist l,listdata x)

求x的直接前驅

int priorelem(l,x)

在順序表l中的第i個元素前插入e

//成功返回1,否則返回0

int listinsert(sqlist &l,int i,listdata e)

q=l.data+i-1;//指定插入的位置

for(p=l.data+l.length-1;p>=q;--p) *(p+1)=*p;// q之後的元素右移

*q=e; ++l.length; // 插入e ,表長增1

return

1; }

在順序表l中刪除第i個元素,成功返回1,否則返回0

int listdelete(sqlist &l,int i)

l.length--;//表長-1

return

1;}

資料結構 線性表 順序表

豐富了前邊的功能,更加完善。include include define list init size 100 線性表儲存空間的初始分配量 define listincrement 10 線性表儲存空間的分配增量 using namespace std const int overflow 2 ty...

資料結構 線性表 順序表

線性表是具有相同特性的資料元素的乙個有限序列。線性表的順序儲存結構是,把線性表中的所有元素按照其邏輯順序依次儲存到從計算機儲存器中指定的儲存位置開始的一塊連續的儲存空間。include include include define maxsize 50 using namespace std 假設l...

資料結構 線性表(順序表)

順序表就是把線性表中的所有元素按照其邏輯順序,依次儲存到從指定的儲存位置開始的一塊連續的儲存空間中。這樣線性表中第乙個元素的儲存位置就是指定的儲存位置,第i 1個元素的儲存位置緊接在第i個元素的儲存位置的後面。順序表就像如下圖中的房子,每個房間左邊的數字就是該房間離0點的距離,同時也代表了房間號,房...