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