資料結構之單鏈表

2021-09-12 10:12:24 字數 1986 閱讀 8928

下週就要寫鍊錶了,提前寫熟悉一下,主要是adt的大部分函式。本來還寫了逆序的函式,但因為過於醜陋以及執行不佳就刪了。還有就是鍊錶問題真的挺注重細節,細心點寫吧。

#include

using namespace std;

typedef

struct lnodelnode,

*linklist;

void

createlist

(linklist &l,

int n)

//頭插法

}void

createlist1

(linklist &l,

int n)

//尾插法

}void

print

(linklist l)

//輸出鍊錶

}int

getelem

(linklist l,

int i,

int&e)

//獲取元素if(

!p || j > i)

return-1

; e = p->data;

return e;

}int

insertlist

(linklist &l,

int i,

int e)

//鍊錶插入

if(j > i-1||

!p)return-1

; q = new lnode;

q->data = e;

q->next = p->next;

p->next = q;

return1;

}int

eraselist

(linklist &l,

int i,

int&e)

//鍊錶刪除}if

(!(p->next)

|| j > i-1)

return-1

; q = p->next;

e = q->data;

p->next = q->next;

delete q;

return e;

}int

merge_list

(linklist &a,linklist &b , linklist &c)

//合併兩個非遞減鍊錶

else}if

(pa) pc->next = pa;

else pc->next = pb;

}void

clearlist

(linklist &l)

intlistempty

(linklist l)

intlistlength

(linklist l)

return j-1;

}int

locateelem

(linklist l ,

int e)

return-1

;}intpriorelem

(linklist l,

int cur)

return-1

;}intnextelem

(linklist l,

int cur)

return-1

;}intlink_list

(linklist &a,linklist &b)

//將兩個非空鍊錶連起來

pa->next = b->next;

}int

main()

case2:

case3:

case4:

break;}

case5:

case6:

case7:

case8:

case9:

case10:

case11:

case12:

case13:

case14:

}}}

資料結構之單鏈表

date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...

資料結構之單鏈表

鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...

資料結構之單鏈表

由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...