基礎練習 樹的建立及遍歷(遞迴 佇列的應用)

2021-10-12 07:39:42 字數 2268 閱讀 8356

3.完整編碼

4. 後續計畫

參考資訊

二叉搜尋樹、樹的遍歷、遞迴和佇列的基礎知識

結構化陣列

typedef int elementtype;

//通過typedef增加靈活性,樹節點的元素型別若改變,修改typedef語句即可

typedef struct binarysearchtree *ptrbst;

struct binarysearchtree

;

addnode()函式,向樹中新增結點,屬於編碼基本功

ptrbst addnode

(ptrbst tree,elementtype value)

else

return tree;

}

createbst()函式,呼叫addnode()完成建樹

ptrbst createbst

(ptrbst tree,int nodenumber)

return tree;

}

preorder()函式,通過遞迴實現樹的前序遍歷:根 左 右;使用遞迴時別遺漏函式的返回,如下例中的 樹為空時返回空值。

void

preorder

(ptrbst tree)

//root left right

inorder()函式,通過遞迴實現樹的中序遍歷:左 根 右

void

inorder

(ptrbst tree)

//left root right

postorder()函式,通過遞迴實現樹的後序遍歷:左 右 根

void

postorder

(ptrbst tree)

//left right root

levelorder()函式,通過佇列 queue實現樹的層序遍歷:佇列可以儲存任何元素,比如 『樹』

void

levelorder

(ptrbst tree)

return

;}

#include 

#include

#include

using namespace std;

typedef int elementtype;

typedef struct binarysearchtree *ptrbst;

struct binarysearchtree

;ptrbst createbst

(ptrbst tree,int nodenumber)

;ptrbst addnode

(ptrbst tree,elementtype value)

;void

preorder

(ptrbst tree)

;void

inorder

(ptrbst tree)

;void

postorder

(ptrbst tree)

;void

levelorder

(ptrbst tree)

;int main()

return0;

}void

levelorder

(ptrbst tree)

return;}

void

postorder

(ptrbst tree)

//left right root

void

inorder

(ptrbst tree)

//left root right

void

preorder

(ptrbst tree)

//root left right

ptrbst addnode

(ptrbst tree,elementtype value)

else

return tree;

}ptrbst createbst

(ptrbst tree,int nodenumber)

return tree;

}

遞迴實際上是堆疊的一種應用:先進後出,嘗試使用堆疊完成樹的先序、中序、後序遍歷

浙江大學 陳越、何欽銘老師主講的資料結構

二叉樹的建立及遞迴遍歷

huangjing 二叉樹的的建立方式為前序 二叉樹有三種遍歷 前序遍歷 nlr 中序遍歷 lnr 後續遍歷 lrn 非遞迴的演算法明天補上 為 include include include include include include include include include inclu...

資料結構 樹的遍歷(遞迴遍歷練習)

樹的遍歷 練習 include include include typedef struct treenodetreenode,treenodepointer 計算葉子節點的數目 void leafcount treenodepointer root,int num 遍歷左子樹 leafcount ...

JZ 28 對稱的二叉樹(遞迴 佇列)

方法二 迭代 佇列 通過同步移動兩個指標的方法來遍歷這棵樹,p和q一開始都指向這棵樹的根,隨後p左移時q右移,p右移時q左移,每移動一次都要檢查當前兩個指標所指的結點的值是否相等,相等再繼續往下遍歷。設 i ss ymme tric roo t issymmetric root issymm etr...