1.鍊錶
鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。
相比於線性表順序結構,鍊錶比較方便插入和刪除操作。
a.單向鍊錶
單向鍊錶的每乙個結點由儲存資料元素的資料域和指向下乙個結點的指標域組成。
b.雙向鍊錶
雙向鍊錶是單鏈表的改進。
雙向鍊錶中,結點除含有資料域外,還有兩個鏈域,乙個儲存直接子結點位址,一般稱之為右鏈域;乙個儲存直接父結點位址,一般稱之為左鏈域。
c.迴圈鍊錶
迴圈鍊錶的每乙個結點由儲存資料元素的資料域和指向下乙個結點的指標域組成。末尾節點的指標域只想根節點的資料域。
2.二叉樹
節點有左右樹之分
a.遍歷二叉樹,就是按一定的規則和順序走遍二叉樹的所有結點,使每乙個結點都被訪問一次,而且只被訪問一次。由於二叉樹是非線性結構,因此,樹的遍歷實質上是將二叉樹的各個結點轉換成為乙個線性序列來表示。
(1)前序遍歷 訪問根;按前序遍歷左子樹;按前序遍歷右子樹
(2)中序遍歷 按中序遍歷左子樹;訪問根;按中序遍歷右子樹
(3)後序遍歷 按後序遍歷左子樹;按後序遍歷右子樹;訪問根
(4)層次遍歷 即按照層次訪問,通常用佇列來做。訪問根,訪問子女,再訪問子女的子女(越往後的層次越低)(兩個子女的級別相同)
鍊錶和二叉樹
鍊錶是離散儲存性結構 常用鍊錶有3類 單鏈表 雙向鍊錶 迴圈鍊錶 陣列是一種連續儲存線性結構,元素型別相同,大小相等。鍊錶和陣列各自的優缺點 鍊錶優點 空間沒有限制 插入刪除元素很快 缺點 訪問速度慢 陣列優點 訪問速度快 缺點 必須事先知道陣列的長度 插入刪除元素很慢 空間有限制 單鏈表由各個記憶...
二叉樹 二叉鍊錶
include using namespace std typedef char elemtype int n 0 typedef struct binode binode class bitree bitree binode getroot void preorder binode root 前序...
二叉樹(二叉鍊錶實現)
二叉鍊錶結構的二叉樹模型,棧用自己寫的模版,佇列就不了 直接用stl的,不然 太長了 檔案 tree.h include include includeusing namespace std templateclass my stack templateclass node 結點類 node t d...