資料結構 二叉樹的遍歷實現筆記C

2022-09-03 14:30:24 字數 1525 閱讀 5622

二叉樹的遍歷實現,可以用遞迴的方法也可以用非遞迴的方法。非遞迴的方法可以借助棧(前序遍歷,中序遍歷,後序遍歷),也可以借助佇列(層次遍歷)。本次筆記只使用了遞迴的方法來進行前序遍歷,中序遍歷,後序遍歷,借助佇列進行層次遍歷。想要更細緻的看一下二叉樹的遍歷推薦

要遍歷的二叉樹如下:

中序遍歷:a/b*c-d+e

前序遍歷:+-*/abcde

後序遍歷:ab/c*d-e+

層次遍歷:+-e*d/cab

標頭檔案**

1

#ifndef _binarytree_h

2#define _binarytree_h

34 #include5 #include6

7 template class

binarytree;

89 template

10class

treenode

1118

t data;

19 treenode*leftchild;

20 treenode*rightchild;

21};

2223 template

24class

binarytree25;

4243 template

44void binarytree::levelorder()

4558}59

60 template

61void binarytree::visit(treenode*currentnode)

6265

66 template

67void binarytree::inorder()

6871

72 template

73void binarytree::inorder(treenode*currentnode)

7481}82

83 template

84void binarytree::preorder()

8588

89 template

90void binarytree::preorder(treenode*currentnode)

9198}99

100 template

101void binarytree::postorder()

102105

106 template

107void binarytree::postorder(treenode*currentnode)

108115

}116

117118

119#endif

原始檔**

1 #include2 #include"

binarytree.h"3

4using

namespace

std;56

intmain()

7

資料結構(C實現) 遍歷二叉樹

二叉樹是另一中樹型結構,它的特點是每個結點至多只有兩棵子樹 即二叉樹中不存在度大於 的結點 並且,二叉樹的子樹有左右之分,其次序不能任意顛倒。根據二叉樹的的遞迴定義可知,二叉樹是由3個基本單元組成,根結點 左子樹和右子樹,因此,若能依次遍歷這三部分,便是遍歷了整個二叉樹。假如以l d r分別表示遍歷...

資料結構筆記 二叉樹的遍歷

二叉樹的遍歷,就是按照一定的規則訪問二叉樹,將二叉樹的非線性結構轉換為二叉樹結點的乙個線性序列 假設 l,r,v 分別代表遍歷乙個結點的左子樹,右子樹,以及訪問該結點的操作 則遍歷總共有六種規則 vlrvrl 前序 lvrrvl 中序 lrvrlv 後序 為了方便,以下演算法都採用先左後右的三種,先...

mysql 遍歷二叉樹 資料結構 二叉樹遍歷

這篇博文主要是研究二叉樹遍歷的遞迴與非遞迴演算法,有興趣的小夥伴可以了解下!二叉樹的遞迴遍歷 深度優先遍歷 先來張圖,看看各結點遍歷時的情況 二叉樹深度優先遍歷總結 分別為第一次,第二次,第三次進入某個結點 先序遍歷 先訪問根結點,然後先序遍歷左子樹,最後先序遍歷右子樹 根 左 右 中序遍歷 先中序...