資料結構(C語言)線性表(順序表)

2021-10-08 10:38:18 字數 1314 閱讀 8959

首先線性表的基本函式:

1.  initlist(&l)   建立乙個空的線性表l

2.  destorylist(&l)  如果線性表已經存在的話,則銷毀線性表l

3.listlength(l)   返回線性表的元素個數

4.getlist(l,  i  ,&e)   用e返回線性表第i個元素的值

5.locateelem(l, e ,compare())  返回l中第乙個與e滿足compare()的資料元素的位序

6.listinsert(&l, i ,e)   在l的第i個位置上加入元素e,l的長度加1

等等........

例1:兩個線性表la和lb  建立乙個新的集合a = aub;

飛飛飛

void unoin (list &la, list lb)

}

例2:

有兩個線性表la = (3,5,8,11), lb = (2,6,8,9,11,15,20) ,則要求lc = (2,3,5,6,8,9,11,15,20),其中線性表都是按照遞增順序排列的,實現**為

飛飛飛

void mergelist(list la, list lb, list &lc)

else

} //當其中的乙個表沒有元素的時候跳轉此過程,把元素放到lc中

while(i < = la_len)

while(j < = lb_len)

}

線性表中的順序表:

以元素在計算機內的「實體地址相鄰」來表示線性表中資料元素之間的邏輯關係。

將順序表中的第i個元素之前插入乙個元素:

飛飛飛

status listinsert_sq (sqlist &l , int i , elemtype e)

q =& l.elem[i - 1];

for(p = l.elem[l.length - 1] ; q < = p ; p--)

*q = e ;

++l.length;

return ok;

}

同理運用順序表的知識也可以把第二個演算法寫一下:

飛飛飛

void mergelist_sq(sqlist la, sqlist lb , sqlist &lc)

else *pc++ = *pb++ ;

} while(pa < pa_last) //進行到最後把剩下的賦值給lc

while(pb < pb_last)

}

資料結構 C語言線性表 順序表

線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表是n個資料元素的有限序列。在資料元素的非空有限集合中 存在唯一的乙個被稱做 第乙個 的資料元素 存在唯一的乙個被稱做 最後乙個 的資料元素 除第乙個之外,集合中的每個資料元素均只有乙個前驅 除最後乙個之外,集合中每個資料元素均只有乙個後繼 in...

C語言資料結構線性表 順序表2

include define ok 1 define error 0 define maxsize 100 定義資料元素型別 typedef structelemtype 定義順序線性表 typedef structsqlist 初始化線性表 void inistlist sqlist pl 建立線...

資料結構 線性表 順序表

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