單鏈表的遍歷 插入 刪除

2021-07-25 04:36:48 字數 875 閱讀 7987

單鏈表由乙個個的節點組成,節點由兩個部分組成:資料域和指標域。

資料域就是儲存這個節點的資料,這沒什麼說的。指標域存放的指標指向的是下乙個結點,正是因為指標域的存在,把存在記憶體不連續區域裡的各個結點連線了起來。

單鏈表最後乙個結點的指標域為空null。

頭結點與頭指標的異同:

頭結點放在第一元素的結點之前,資料域一般無意義或者存放鍊錶的長度,頭結點不要求必須存在。

頭指標是鍊錶指向第乙個結點的指標,若煉表有頭結點則指向頭結點,無論鍊錶是否為空,頭指標均不為空而且頭指標是鍊錶的必要元素。

單鏈表結點的定義

typedef struct node

node;

每個結點其實就是乙個結構體。

單鏈表的插入

頭插法:

p -> next = l -> next;  //p是要插入的結點,l是被插入的結點之前的結點。

用頭插法插入資料,讀取資料是逆序的。

尾插法:

單鏈表遍歷

if(p != null)

單鏈表刪除

q = p ->next;   // q是要刪除的結點

p -> next = p 

-> next -> next;

free(q);     //釋放q占用的空間

單鏈表的建立 插入 刪除 遍歷

首先建立結構體linklist以及全域性指標head作為表頭,具體不在贅述,除此之外本次只詳細描述尾插法,頭插法不再述說。建立 宣告一結點q和計數器變數i 初始化一空鍊錶p 讓p的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表 迴圈實現後繼結點的賦值和插入。尾插法 如下 linklist cr...

單鏈表插入刪除

在鍊錶的插入刪除操作上理解起來比順序表更為容易,其不需要變動在i位置前的所有的元素,只需要修改節點指標即可。插入 設在鍊錶的i位置插入新元素,設i 1節點的指標域為p,設插入的節點指標域為s,所以插入操作應該為 s next p next 將s的字尾改為p的字尾,p的字尾是原來的第i個點的指標域,將...

單鏈表的插入刪除

include using namespace std struct lnode void creat link lnode head head指標的引用,lnode head 傳遞的是指標,但是對於指標的原值卻發生了copy,這樣你雖然可以對指標指向的記憶體進行修改但是不能對指標進行修改。因此要傳...