JS實現二叉樹的遍歷

2022-07-26 06:30:13 字數 3575 閱讀 7619

二叉樹的遍歷指的是按照某種順序,依次訪問二叉樹的每個節點,有且訪問一次。

二叉樹的遍歷有以下三種

(1)前序遍歷,從根節點,到左子樹,再到右子樹,簡稱根左右。

(2)中序遍歷,從左節點,到根節點,再到右子樹,簡稱左根右。

(3)後序遍歷,從左子樹,到右子樹,再到根節點,簡稱左右根。

1

doctype html

>

2<

html

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

title

>document

title

>

6<

style

>7*

11.wrap

20.wrap div

30.btn-wrap

34.btn-wrap button

3839

style

>

40head

>

41<

body

>

42<

div

class

="wrap"

>

43<

div>

44<

div>

45<

div>

46<

div>

div>

47<

div>

div>

48div

>

49<

div>

50<

div>

div>

51<

div>

div>

52div

>

53div

>

54<

div>

55<

div>

56<

div>

div>

57<

div>

div>

58div

>

59<

div>

60<

div>

div>

61<

div>

div>

62div

>

63div

>

64div

>

65<

div>

66<

div>

67<

div>

68<

div>

div>

69<

div>

div>

70div

>

71<

div>

72<

div>

div>

73<

div>

div>

74div

>

75div

>

76<

div>

77<

div>

78<

div>

div>

79<

div>

div>

80div

>

81<

div>

82<

div>

div>

83<

div>

div>

84div

>

85div

>

86div

>

87div

>

88<

div

class

="btn-wrap"

>

89<

button

>前序

button

>

90<

button

>中序

button

>

91<

button

>後序

button

>

92div

>

93<

script

>

94var

wrap

=document.queryselector(

".wrap");

95var

btn_wrap

=document.queryselector(

".btn-wrap");

96var

btn1

=btn_wrap.queryselectorall(

"button")[

0];97var

btn2

=btn_wrap.queryselectorall(

"button")[

1];98var

btn3

=btn_wrap.queryselectorall(

"button")[

2];99var

arr =;

100var

last;

101var

toggle

=false

;102

//給按鈕繫結事件

103btn1.onclick

=function

()110

}111

btn2.onclick

=function

()118

}119

btn3.onclick

=function

()126

}127

//二叉樹的遍歷的三種方式

128//

(1)前序遍歷(dlr

129function

preorder(node)

135}

136//

(2)中序遍歷(ldr)

137function

inorder(node)

143}

144//

(3)後序遍歷(lrd)

145function

postorder(node)

151}

152//

顯示遍歷的過程

153function

showway()

160if

(last)

163arr[i].style.background ="

red"

;164

last

=arr[i];

165}

166}(i),i

*1000

)167

}168

}169

//初始化

170function

reset()

175}

176script

>

177body

>

178html

>

原生js實現二叉樹的遍歷

首先我們要知道前序遍歷 中序遍歷,後序遍歷的概念 前序遍歷 從雙親節點開始,遍歷左樹,再遍歷右樹 中序遍歷 從左樹開始,再遍歷雙親節點,最後遍歷右樹 後序遍歷 從左樹開始,再遍歷右樹,最後遍歷雙親節點 核心演算法很簡單 建立乙個陣列,將當前的節點遞迴,演算法不同處只是在於陣列加入node節點的次序不...

二叉樹層次遍歷(js

二叉樹 var node4 var node5 var node6 var node7 var node3 var node2 var node1 通過佇列,佇列先進先出 var levelorder function root let res 定義佇列que,起初存放根節點,代表第一層 let q...

二叉樹的遍歷 二叉樹遍歷與儲存

在資料結構中,二叉樹是非常重要的結構。例如 資料庫中經常用到b 樹結構。那麼資料庫是如何去單個查詢或者範圍查詢?首先得理解二叉樹的幾種遍歷順序 先序 中序 後序 層次遍歷。先序 根節點 左子樹 右子樹 中序 左子樹 根節點 右子樹 後序 左子樹 右子樹 根節點 按層級 class node if c...