python資料結構之二叉樹的建立例項

2022-08-24 17:42:10 字數 2317 閱讀 1963

先建立二叉樹節點,有乙個data資料域,left,right 兩個指標域

#

coding:utf-8

class

treenode(object):

def__init__(self,left=none,right=none,data=0):

self.left =left

self.right =right

self.data =data

建立樹:

class

btree(object):

def__init__(self,root=none):

self.root = root

手動建立二叉樹

if

__name__ == "

__main__":

node1 = treenode(data=1)

node2 = treenode(node1, none, 2)

node3 = treenode(data=3)

node4 = treenode(data=4)

node5 = treenode(node3, node4, 5)

node6 = treenode(node2, node5, 6)

node7 = treenode(node6, none, 7)

node8 = treenode(data=8)

root = treenode(node7, node8, '

root')

bt = btree(root)

然後會生成下面的二叉樹

#

生成的二叉樹

#------------------------

#root

#7 8#6

#2 5

#1 3 4##

-------------------------

除了 手動乙個個的制定 node 節點,還可以建立乙個 create 方法,接受使用者輸入新增二叉樹節點。。。使用前續方式新增 ,**如下:

#

coding:utf-8

class

treenode(object):

def__init__(self,left=none,right=none,data=0):

self.left =left

self.right =right

self.data =data

class

btree(object):

def__init__(self,root=none):

self.root =root

defis_empty(self):

return self.root ==none

defcreate(self):

temp = input('

enter a value:')

if temp is'#

':return

none

treenode = treenode(data=temp)

if self.root is

none:

self.root =treenode

treenode.left =self.create()

treenode.right =self.create()

if__name__ == "

__main__":

bt =btree()

bt.create()

使用create建立二叉樹

#

執行檔案 在互動直譯器下面執行

bt =btree()

bt.create()

enter a value:9enter a value:7enter a value:6enter a value:2enter a value:1enter a value:'#

'enter a value:'#

'enter a value:'#

'enter a value:5enter a value:3enter a value:'#

'enter a value:'#

'enter a value:4enter a value:'#

'enter a value:'#

'enter a value:'#

'enter a value:8enter a value:'#

'enter a value:'#

'

通過 create 也可以得到同樣的效果

資料結構之二叉樹

在二叉樹中每個節點最多只能有兩個子節點。即左子節點和有子節點。在二叉樹中最重要的操作應當是遍歷。即按照某一順序訪問二叉樹中的每乙個節點。一般有如下幾種遍歷方法 1 前序遍歷,即先訪問根幾點,然後再訪問左子節點,最後訪問右子節點。2 中序遍歷,即先訪問左子節點,然後再訪問根節點,最後訪問右子節點。3 ...

資料結構之二叉樹

定義 滿足以下條件的就是樹 1.有且僅有乙個特定的稱為根root的結點。2.當n 1時,其餘結點可分為m m 0 個互不相交的有限集,其中每個集合本身又是乙個棵樹,並稱為根的子樹。樹是資料結構中一種常見的資料結構,比如我們排序中常見的二叉樹,紅黑樹等。最常見的是樹形表示法和廣義表表示法。樹的結構示意...

資料結構之二叉樹

來看一下樹的結構 class treenode public treenode string value 首先,為了方便後面看到效果,先手動初始化乙個有4個節點的二叉樹 tree tree new tree treenode root new treenode root treenode node1...