樹和二叉樹的鏈式儲存實現

2021-08-13 02:26:12 字數 1516 閱讀 4481

#includeusing namespace std;

templatestruct binode

;templateclass bitree//建構函式,建立一顆二叉樹

~bitree()//析構函式,釋放各結點的儲存空間

void preorder()//前序遍歷函式

void inorder()//中序遍歷函式

void postorder()//後序遍歷函式

void printpc()//列印結點的雙親和孩子資訊函式

void printleaf()//列印葉子結點資訊函式

private:

binode*root;//指向根結點的頭指標

binode*creat(binode*bt);//構造函式呼叫

void release(binode*bt);//析構函式呼叫

void preorder(binode*bt);//前序遍歷函式呼叫

void inorder(binode*bt);//中序遍歷函式呼叫

void postorder(binode*bt);//後序遍歷函式呼叫

void printpc(binode*bt,binode*pr);//列印結點的雙親和孩子資訊函式呼叫

void printleaf(binode*bt);//列印葉子結點資訊函式呼叫

通過這次上機實驗操作,對樹和二叉樹的鏈式儲存有了更深的了解,對鏈式儲存的結構和查詢等相關操作也有一定的掌握,但在實驗中還是存有一定的問題,主要是因為自己對理論知識理解和掌握不夠深入,在一開始的**編寫中,會遇到大概懂得如何處理但編寫程式不止如何表達的情況。

另外,和上一次順序儲存結構實驗對比會發現,自己對樹和二叉樹的儲存規律和特點以及四種遍歷方式的操作和特點都有了更深的理解。

二叉樹的鏈式儲存

實現二叉樹的基本操作 建立 遍歷 計算深度 結點數 葉子數等。輸入c,先序建立二叉樹,表示空節點 輸入h 計算二叉樹的高度 輸入l 計算二叉樹的葉子個數 輸入n 計算二叉樹節點總個數 輸入1 先序遍歷二叉樹 輸入2 中序遍歷二叉樹 輸入3 後續遍歷二叉樹 輸入f 查詢值 x的節點的個數 輸入p 以縮...

二叉樹的鏈式儲存

若用鍊錶儲存一棵二叉樹時,每個結點除資料域外,還有指向左孩子和右孩子的兩個指 針。在這種儲存結構中,n個結點的二叉樹共有 個指標域,其中有 個指標域是存放了位址,有 個指標是空指標。因為有n個節點,每個節點都存了乙個lchild,乙個rchild,所以共2n個指標域。因為除了根節點,其他所有的節點都...

二叉樹鏈式儲存的C實現

在實現二叉樹的鏈式儲存的過程中,我遇到了一些問題,感到對遞迴的理解還不夠深入。另外,中有一處必須使用全域性變數做陣列索引,還在研究其中的原因,已完成,現在貼在部落格中供參考 include include include include define maxsize 100 define ok 1 ...