資料結構 線性表相關操作

2021-10-12 02:53:56 字數 1881 閱讀 3348

#include

using

namespace std;

//靜態順序表

typedef

struct

l1;//動態順序表

typedef

struct

l2;//動態順序表初始化

void

l2_init

(l2* l)

//插入(動態順序表)

void

l2_insert

(l2* l,

int i,

int e)

int*p = l-

>a + i -1;

for(

int*q = l-

>a + l-

>length -

1; q >= p; q--

)*p = e;

l->length +=1

;}//刪除(動態順序表)

void

l2_delete

(l2 *l,

int i,

int*e)

l->length -=1

;}//單鏈表

typedef

struct list

list,

*linklist;

//按位置查詢(單鏈表)

void

list_search

(linklist l,

int i,

int*e)if(

!p || j > i)

exit(-

1);*e = p-

>data;

}//按值查詢(單鏈表)

linklist list_searchvalue

(linklist l,

int e)

return

null;}

//插入 (單鏈表)

void

list_insert

(linklist &l,

int i,

int e)if(

!q || j > i)

exit(-

1); linklist p =

(linklist)

malloc

(sizeof

(list));

if(!p)exit(-

1); p-

>data = e;

p->next = q-

>next;

q->next = p;

}//刪除(單鏈表)

void

list_delete

(linklist &l,

int i,

int*e)

//頭插法建立單鏈表

void

list_create_head

(linklist &l,

int n)

}//尾插法建立單鏈表

void

list_create_tail

(linklist &l,

int n)

}//鍊錶逆置

void

list_reverse

(linklist &l)

}//鍊錶逆置

void

list_reverse2

(linklist &l)

}//列印鍊錶

void

list_print

(linklist l)

}//靜態鍊錶

typedef

struct

list1, linklist1[

100]

;int

main()

資料結構 線性表相關

1.佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 2.棧 stack 在電腦科學中是限定僅在棧頂進行插入或刪除操作的線性表。3.鍊錶 linked list 是一種常見的基礎資料結構,是一種線性表,是一種物理儲存單元上非連續 非順序的儲存結構。雙向鍊錶也叫雙鏈表 是...

資料結構 線性表相關知識

順序表和煉表的區別 線性表是以整體存在的,就像一根竹竿,一節接一節。所以它在儲存時也是整體儲存,也就是位址相連,乙個接乙個。而鍊錶相對來說就比較自由,儲存起來就不必相連,打亂順序也是有可能的。因為鍊錶的指標域會指明下乙個元素的儲存單元,這樣就可以一級一級的訪問。雙向迴圈列表理解 和志帥交流的結果,因...

線性表相關計算

已知乙個線性表 38,25,74,63,52,48 假定採用雜湊函式h key key 7 計算散 列位址,並雜湊儲存在雜湊表a 0.6 中,若採用線性探測方法解決衝突,則在該雜湊表上 進行等概率成功查詢的平均查詢長度為 我們首先必須要知道在建立這個雜湊表時,每個資料儲存時進行了幾次雜湊。這樣就知道...