Python 建立二叉樹

2021-10-09 17:38:35 字數 1184 閱讀 1438

在這之前我一直都沒搞清楚,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...