先建立二叉樹節點,有乙個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
建立樹:
classbtree(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...