二叉樹的先 中 後 層序遍歷 (非遞迴)

2022-09-03 03:51:10 字數 870 閱讀 9059

二叉樹的遍歷,求高度、葉子、結點的非遞迴形式,可以在某乙個遍歷中增加一項用於統計的次數即可。

1

//層序遍歷:以rear走兩步(即兩個if()語句),front走一步的來遍歷,結合佇列畫圖可清晰了解遍歷思想

2void tree::levertree(node *root) else

16if (p->rchild != null) 19}

20}

21 cout <23//

後序遍歷:

24void tree::posttree(node *root)

35 p = null; //

初始化為空,來判斷當前的棧頂有無右孩子,無則該右孩子就是空null

36 flag = false; //

false表示不含右孩子

37while (top != -1 && flag == false

) 44

else 48}

49 } while (top != -1

);50 cout <52}

53//

中序遍歷:

54void tree::intree(node *root) //

左子樹的左孩子全部入棧完畢

65if (top > -1)70}

71 cout <73}

74//

先序遍歷:

75void tree::pretree(node *root)

87if (p->lchild != null) 90}

91 cout <93 }

二叉樹非遞迴先序遍歷

二叉樹的遞迴先序遍歷很簡單,假設二叉樹的結點定義如下 1 struct binarytreenode 2 遞迴先序遵循 根 左 右的順序 1 void preorder binarytreenode root 2非遞迴我們以乙個例子說明,仍然以之前博文的乙個二叉樹說明 1 82 36 104 55 ...

二叉樹 非遞迴遍歷(先 中 後)

include include include define maxsize 20 最多結點個數 using namespace std 二叉鍊錶 typedef struct bnodebnode,btree 順序棧 typedef btree datatype typedef structseq...

二叉樹的非遞迴先序,中序遍歷

題目描述 從鍵盤接收擴充套件先序序列,以二叉鍊錶作為儲存結構,建立二叉樹。採取非遞迴方法輸出這棵二叉樹的先序 中序遍歷序列。樣例輸入 abc de g f 樣例輸出 abcdegf cbegdfa 實現 include include define max 100 typedef struct no...