動態鍊錶的操作(增刪改查)
鍊錶一般是帶頭結點的鍊錶,頭結點並沒有資料;
遍歷鍊錶時,先令p = head - > next,,只要p非空,就可以一直迴圈;
刪除鍊錶元素時,需要兩個指標,乙個指向將要刪除的元素,另乙個指向刪除元素的前驅;
增加元素時,要先找到目標元素,然後新建乙個節點,在這個目標元素的後面加上新建節點
#include
#include
#include
#include
#include
#include
using
namespace std;
struct node
;node*
creat
(int a)
return head;
}int
findele
(node* head,
int k)
return cnt;
}void
show
(node* head)
printf
("\n");
}void
deleteele
(node* head,
int val)
else
}show
(head);}
intmain()
; node* head =
creat
(a);
show
(head)
;int ans =
findele
(head,4)
;printf
("%d\n"
, ans)
;deleteele
(head,4)
;system
("pause");
return0;
}
靜態鍊錶靜態鍊錶的思想是雜湊,將元素的位址直接與陣列下標向對應,查詢較為方便,但只適用於位址較小的題目
靜態鍊錶常見步驟:
1.儲存所有節點,為所有節點設定初始flag屬性;
2.遍歷整個鍊錶,記錄有效元素,如果想省空間,可以直接修改flag屬性,代表此元素在鍊錶上;也可以拿乙個陣列儲存有效元素;
3.對有效元素進行排序
演算法筆記 鍊錶
鍊錶結構如下 struct listnode int m nvalue listnode m pnext 1.輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。2.求鍊錶的中間結點。如果鍊錶中結點總數為奇數,返回中間結點,如果結點總數是偶數,返回中間兩個結點的任意乙個。3.判斷乙個單向鍊錶是否形成了環形結構...
演算法筆記 鍊錶
基本操作 建立鍊錶 尾插法和頭插法 include includeusing namespace std struct node 尾插法建立鍊錶 node create int array return head int main node l create array l l next while...
演算法筆記7 3 鍊錶
create search insert del includeusing namespace std struct node 建立乙個單向鍊錶 根據陣列來初始化相應結點 node create int array,int n return head 返回頭結點 查詢元素 返回給定元素在鍊錶 現的次...