2019 05 30 二叉樹的廣度遍歷

2021-09-24 00:21:19 字數 1357 閱讀 6159

其廣度優先遍歷的順序是:50、20、60、15、30、70。

在**中,我們使用佇列進行廣度優先遍歷,先把根節點放入佇列,利用佇列的先進先出原則,訪問佇列中取出的節點,並分別把左子節點和右子節點放入佇列,迴圈下去,直到隊列為空。

if self.root == none:#判斷一下二叉樹是否為空

return none

retlist = #存遍歷二叉樹時候的結果

queue = queue() #宣告乙個佇列

queue.put(self.root) #把根節點放到佇列中,開始遍歷

while queue.empty() is not true:

#只要佇列有節點,就會一直執行

node = queue.get()#例項化node,將二叉樹例項化給node

if node.left != none:

queue.put(node.left)

if node.right != none:

queue.put(node.right)

return retlist

if __name__ == '__main__':

rootnode = treenode(50)

rootnode.left = treenode(20,left=treenode(15),right=treenode(30))

rootnode.right = treenode(60,right=treenode(70))

#以上是構造二叉樹例項,這裡完成了二叉樹的構造,才能有node=queue.get()的例項化

tree = binarytree(rootnode)#把上面剛剛建立的整個二叉樹都給了binarytree

retlist = tree.breathsearth()

print (retlist)

Kotlin實現二叉樹的深度遍歷和廣度遍歷

今天,用kotlin打造乙個二叉樹,也是練手級別小製作,希望大家喜歡。資料結構知識 kotlin知識 data class treenode var value int,var leftchild treenode?null,var rightchild treenode?null 這裡只寫了新增和...

二叉樹構造 二叉樹的廣度優先遍歷

輸入一棵二叉樹的先序遍歷序列和中序遍歷序列,輸出它的廣度優先遍歷序列。第一行為乙個整數t 0為每個測試用例單獨一行輸出廣度優先遍歷序列。2dbacegf abcdefg bcad cbad dbeacgf bcad include include include using namespace st...

二叉樹專題 lintcode二叉樹的層序遍歷

層序遍歷算是遍歷方式中,比較容易掌握的,實質就是寬度優先遍歷,bfs的基本 塊如下 void bfs 放到二叉樹的遍歷中來看,首先根節點入隊,根出隊,訪問根節點,再入隊左孩子,入隊右孩子 這樣再出隊時,就是訪問的第二層的左側.以此類推 我們來看看題目考察的方式 由以上的分析,容易想到先取到這一層的元...