《演算法筆記》鍊錶

2021-10-04 18:10:58 字數 1192 閱讀 7239

動態鍊錶的操作(增刪改查)

鍊錶一般是帶頭結點的鍊錶,頭結點並沒有資料;

遍歷鍊錶時,先令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 返回頭結點 查詢元素 返回給定元素在鍊錶 現的次...