在這之前我一直都沒搞清楚,python對於二叉樹是怎麼建立 ,所以今天就查了一些資料和教程
話不多說,上**
# 初始化
class
binarytreeinit
(object):
def__init__
(self, x)
: self.val = x
self.left =
none
self.right =
none
# 二叉樹
class
binarytree
:# 前序遍歷
defpreorder
(self,root)
:if root:
root.val
self.preorder(root.left)
self.preorder(root.right)
# 中序遍歷
definorder
(self,root)
:if root:
self.inorder(root.left)
root.val
self.inorder(root.right)
# 後序遍歷
defpostorder
(self,root)
:if root:
self.postorder(root.left)
self.postorder(root.right)
root.val
if __name__ ==
'__main__'
:# 給二叉樹賦值
binary1 = binarytreeinit(2)
binary1.left = binarytreeinit(1)
binary1.right = binarytreeinit(8)
binary1.right.left = binarytreeinit(4)
# binarytree().preorder(binary1)
binarytree(
).inorder(binary1)
# binarytree().postorder(binary1)
# print(binary1.left.val)
這樣乙個二叉樹就建立好了 建立二叉樹 後序建立二叉樹
由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...
建立二叉樹
今天看到了乙個資料結構的筆試題目,他要求寫出建立二叉樹的程式。我想練習練習,所以想了一下其大致的思路,記錄如下 題目的要求很簡單,給出乙個字串序列 比如說a b d,e h j,k l,m n c f,g i 然後要求按照其規則建立二叉樹,題目不難但是卻花費了我不少的時間 第一步,我想到的是需要什麼...
建立二叉樹
二叉樹在結構上不依賴組織鍊錶 指路法通過根節點與目標節點的相對位置進行定位 define bt left 0 define bt right 1 typedef unsigned long long btpos 結點指標域定義 typedef struct tag btressnode btress...