7 4 鍊錶 單鏈表型別模板

2021-07-13 11:29:03 字數 938 閱讀 5007

單鏈表的概念和基本演算法這裡:

c++單鏈表的基本演算法

分析:考慮單鏈表的特點及其基本操作,可以

將每個節點歸屬成乙個節點類

,該類的乙個物件就是乙個節點,凡與節點資料(或指向節點的指標)操作有關函式作為節點類成員函式,包括生成新節點、在當前節點後插入節點、在當前節點後刪除乙個節點、……;

在節點類的基礎上,再定義鍊錶類,該類的乙個物件就是乙個單鏈表

,操作包括生成(建立)有序鍊錶、搜尋遍歷、插入、刪除、取資料等;

templateclass node;//節點類宣告

templateclass list; //鍊錶類宣告

templateclass node

;//節點類模板宣告結束

以下是節點類的成員函式的定義

template node::node()

//此節點的資料域不用,僅作頭節點

template node::node(const t & data)

//設定當前節點

templatevoid node::insertafter(node* p)

//在當前節點後插入p

templatenode* node::removeafter()

//鍊錶類宣告,操作包括建立有序鍊錶、搜尋遍歷、插入、刪除、取資料等:

templateclass list

;//鍊錶類宣告結束

以下是鍊錶類成員函式的定義

templatelist::list()

//將呼叫node類構造

templatelist::~list()

templateint list::length()

return count;

}//算不算head節點?

……其他成員函式**略,請參見【

例7.5_h

】和【例7.5

】。

鍊錶 單鏈表翻轉

看到好多部落格裡面寫鍊錶翻轉時候就是 要麼一樣,要麼沒有注釋。咱最近閒人一枚,準備好好寫寫code給大家分享一下自己的思想.使用前插法 1 2 3 4 null 我把1標記為prev,把2標記temp,把3標記next 使得最後順序輸出 4 3 2 1 null 定義linklist型別的prev ...

鍊錶 單鏈表 一

一.帶頭節點的單鏈表與不帶頭節點的單鏈表的比較 下面以插入演算法為例 1.帶頭節點 templatevoid linklist insert int i,t x if p null throw 位置非法 else 2.不帶頭節點templatevoid linklist insert int i,t...

鍊錶 單鏈表的建立

建立乙個節點 struct student 注意 當有新的節點要新增到鍊錶中時,原來最後乙個節點的指標將儲存新新增的節點位址,而新的節點的指標將指向空 null 當新增完成後,新節點將成為鍊錶的最後乙個節點。實際上是尾插法建立鍊錶 例 動態建立乙個鍊錶 步驟分析 1 初始化乙個頭節點,即定義乙個頭指...