單鏈表演算法

2021-10-10 01:18:56 字數 2373 閱讀 1384

遍歷:就是把單鏈表中的各個節點挨個拿出來,就叫遍歷

遍歷要點:不能遺漏,不能重複,追求效率

方法:從頭指標+頭節點 ,順著鍊錶掛接指標依次訪問鍊錶的各個節點,取出這個節點的資料,然後再往下乙個節點,知道最後乙個節點,結束返回

#include

#include

#include

//構建乙個鍊錶的節點

struct node

;struct node *

creat_node

(int data)

bzero

(p,sizeof

(struct node));

p->data=data;

p->pnext=

null

;return p;

}//遍歷單鏈表,ph為指向單鏈表的頭指標,遍歷的節點資料列印出來

void

bianli

(struct node *ph)

printf

("%d\n"

,p->data)

;printf

(" 結束\n");

}int

main

(void

)

刪除節點步驟:找到要刪除的節點 刪除節點

如果找到待刪除的節點:通過遍歷,從頭指標+頭節點開始,順著鍊錶依次將各個節點拿出來,比對,找到我們要刪除的節點

刪除節點的情況: 刪除的節點不是尾節點 刪除的節點是尾節點

第一種:首先把待刪除的節點的前乙個節點的pnext指標指向待刪除的節點的後乙個節點的首位址,然後將摘出來的節點free掉

第二種:首先把待刪除的尾節點的前乙個節點的pnext指標指向null,然後將摘出來的節點free掉

注意堆記憶體的釋放

#include

#include

#include

//構建乙個鍊錶的節點

struct node

;struct node *

creat_node

(int data)

bzero

(p,sizeof

(struct node));

p->data=data;

p->pnext=

null

;return p;

}void

bianli

(struct node *ph)

printf

("%d\n"

,p->data)

;printf

(" 結束\n");

}//從鍊錶ph中刪除節點,待刪除的節點的特徵是資料區等於data

//當我們找到刪除了節點返回0 ,沒找到返回-1

intdelete_node

(struct node *ph,

int data)

else

return0;

}printf

("未找到節點\n");

return-1

;}}int

main

(void

)

逆序逆序又叫反向,將鍊錶中有所有的有效節點在鍊錶中的順序給反過來

逆序 = 遍歷+頭插入

#include

#include

#include

//構建乙個鍊錶的節點

struct node

;struct node *

creat_node

(int data)

bzero

(p,sizeof

(struct node));

p->data=data;

p->pnext=

null

;return p;

}void

bianli

(struct node *ph)

printf

("%d\n"

,p->data)

;printf

(" 結束\n");

}//將ph指向的鍊錶逆序

void

reverse

(struct node *ph)

else

ph->pnext = p;

p = pback;

//走到下乙個節點

}//迴圈結束,最後乙個節點缺失

}int

main

(void

)

單鏈表演算法

設帶頭結點的非空單鏈表 l,設計乙個演算法刪除 l 中奇數序號 的結點,即刪除 l 中第 1 3 5 結點。應該是對的,唉,我也忘了 設計演算法刪除單鏈表奇數序號的節點 include include include define elemtype int typedef struct node l...

演算法 單鏈表之和

今天看到 待字閨中 的一道演算法題 兩個單鏈表,每乙個節點裡面乙個0 9的數字,輸入就相當於兩個大數了。然後返回這兩個數字的和 乙個新的list 這兩個輸入的list長度相等。要求 1 不用遞迴 2 要求演算法的時間和空間複雜度盡量低 分析 0 9之間的數相加,最大的進製是1,如果只要求遍歷兩個鍊錶...

單鏈表全部演算法

本篇純粹體現鍊錶各種操作的具體 實現,採用了帶頭結點的單鏈表,廢話不多說,直接上 注釋 include include 鍊錶的結構 typedef struct lnode linklist 列印鍊錶 void showlinklist linklist l 初始化鍊錶,使指標指向頭結點 void ...