class Node(object):
def __init__(self, item):
self.elem = item
self.lchild = None
self.rchild = None
class Tree(object):
"""二叉樹"""
def __init__(self):
self.root = None
def add(self, item):
node = Node(item)
if self.root is None:
self.root = node
return
queue = [self.root]
while queue:
cur_node = queue.pop(0)
if cur_node.lchild is None:
cur_node.lchild = node
return
else:
queue.append(cur_node.lchild)
if cur_node.rchild is None:
cur_node.rchild = node
return
else:
queue.append(cur_node.rchild)
def breadth_travel(self):
"""廣度遍歷"""
if self.root is None:
return
queue = [self.root]
while queue:
cur_node = queue.pop(0)
print(cur_node.elem, end = " ")
if cur_node.lchild is not None:
queue.append(cur_node.lchild)
if cur_node.rchild is not None:
queue.append(cur_node.rchild)
def preorder(self, node):
"""先序遍歷"""
#遍歷整棵樹逃魄,先把根節(jié)點node傳進來
if node is None:
return
print(node.elem, end = " ") #因為是先序遍歷谨胞,就應該把根節(jié)點的元素打印出來
self.preorder(node.lchild) #然后再判斷根節(jié)點的左子樹球化,把它當作子樹對待
self.preorder(node.rchild) #然后再處理右子樹,用遞歸的方法
def inorder(self, node):
"""中序遍歷"""
if node is None:
return
self.inorder(node.lchild)
print(node.elem, end = " ")
self.inorder(node.rchild)
def postorder(self, node):
"""后序遍歷"""
if node is None:
return
self.postorder(node.lchild)
self.postorder(node.rchild)
print(node.elem, end = " ")
if __name__ == "__main__":
tree = Tree()
tree.add(0)
tree.add(1)
tree.add(2)
tree.add(3)
tree.add(4)
tree.add(5)
tree.add(6)
tree.add(7)
tree.add(8)
tree.add(9)
tree.breadth_travel()
print(" ")
tree.preorder(tree.root)
print(" ")
tree.inorder(tree.root)
print(" ")
tree.postorder(tree.root)
BFS & DFS
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掘剪,“玉大人平委,你說我怎么就攤上這事《崴” “怎么了廉赔?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長予权。 經(jīng)常有香客問我昂勉,道長,這世上最難降的妖魔是什么扫腺? 我笑而不...
- 正文 為了忘掉前任岗照,我火速辦了婚禮,結(jié)果婚禮上笆环,老公的妹妹穿的比我還像新娘攒至。我一直安慰自己,他們只是感情好躁劣,可當我...
- 文/花漫 我一把揭開白布迫吐。 她就那樣靜靜地躺著,像睡著了一般账忘。 火紅的嫁衣襯著肌膚如雪志膀。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼惊奇,長吁一口氣:“原來是場噩夢啊……” “哼互躬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颂郎,我...
- 正文 年R本政府宣布膜蛔,位于F島的核電站坛猪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏皂股。R本人自食惡果不足惜墅茉,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呜呐。 院中可真熱鬧就斤,春花似錦、人聲如沸蘑辑。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽洋魂。三九已至绷旗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間副砍,已是汗流浹背衔肢。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- BFS循環(huán)常用比較參數(shù):queue.size() 107. Binary Tree Level Order Tra...
- Graph 的例子包括 City Map Power Distribution Network Water Dis...
- 因為要移植CSK得寫快速傅里葉變換的算法,還是二維的捍掺,以前在pc平臺上只需調(diào)用庫就可以了撼短,只是有點印象原信號和變換...