本文是為了以下建立鍊錶更加方便,而編寫的c++標頭檔案,作用是建立乙個節點類,此處不採用class,而用struct。
struct和class的區別在於:
二者的訪問許可權不同!!!!
前者:訪問許可權是public
後者:訪問許可權是private
節點類的標頭檔案**如下:
#ifndef listnode_hh
#define listnode_hh
#include
#define listnodeposi(t) listnode* //後面使用方便,也可以不用此巨集定義
template
struct listnode //預設建構函式
listnode(t _val, listnodeposi(t) p = null, listnodeposi(t) s = null) :data(_val), pred(p), succ(s) {}//3個引數的建構函式
listnodeposi(t) insertaspred(t const& _val);//作為前驅插入
listnodeposi(t) insertassucc(t const& _val);//作為後繼插入
};//作為前驅插入時,首先講當前this節點的前驅的後繼給待插入的節點x,然後再把前驅給x,前者是將x的前驅連線上,後者是將x的後繼連線到當前this節點
template
listnodeposi(t) listnode::insertaspred(t const& _val)
//作為後繼插入時,首先將當前this節點的***後繼的前驅***給待插入的節點x,然後再把後繼給x,前者是將x的後繼連線上,後者是將x的前驅連線到當前this節點
template
listnodeposi(t) listnode::insertassucc(t const& _val)
#endif
參考:
清華大學鄧俊輝教授《資料結構》
在此基礎上,做了些許修改,使之更容易理解與呼叫。
本系列文章僅用於記錄,用於學習,沒有商業用途。
C語言資料結構 建立鍊錶與銷毀鍊錶
鍊錶的物理儲存結構是用一組位址任意的儲存單元儲存資料 鍊錶結構中,儲存的每個資料元素記錄都存放到鍊錶的乙個結點 node 中,而每個結點之間由指標將其連線在一起。鍊錶存在以下特徵 2 鍊錶邏輯上連續,物理上並不一定連續儲存結點。3 只要獲得的頭結點,就可以通過指標遍歷整條鍊錶 鍊錶結點用c語言描述 ...
資料結構 鍊錶 雙向鍊錶
注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...
資料結構鍊錶 靜態鍊錶
1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...