二叉樹先序遍歷遵循:
訪問根結點
遍歷其左子樹
遍歷其右子樹
簡單來說就是根->左樹->左樹的左樹->左樹的左樹的左樹->(一直遍歷到沒有左樹為止)右樹->(如果沒沒有右樹就往上)->一直遍歷到右樹的右樹也沒有了()就結束了
class treenode(object):#初始化樹的
def __init__(self,data=0,left=0,right=0):
self.data=data#資料域
self.left=left#左樹
self.right=right#右樹
class btree(object):
#初始化根
def __init__(self,root=0):
self.root=root
#先序遍歷的方法
def preorder(self,treenode):
if treenode is 0:
return
print(treenode.data)
self.preorder(treenode.left)
self.preorder(treenode.right)
if __name__=='__main__':
n1=treenode(data='g')
print(n1)#第0個節點 data =g 0 0
n2=treenode('e')
print(n2)#第二個節點 data=e 0, 0
n3 = treenode('d',0,n2)
print(n3)#第3個節點 data=d 0,n2
n4 = treenode('f',n1,0)
print(n4)#第4個節點 data=d n1,0
n5 = treenode('b',n3,n4)
print(n5)#第5個節點 data=d n3,n4
n6 = treenode('c')
print(n6)#第6個節點 data=d 0,0
root=treenode('a',n5,n6)
#第7個節點 data=a n5,n6
bt=btree(root)
print("先序遍歷".center(50,'-'))
bt.preorder(bt.root)
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...
先序構建二叉樹及先序遍歷二叉樹
先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...
二叉樹的先序遍歷
description 給定一組輸入資料,要求按照該輸入資料構造一棵二叉樹並且使用非遞迴的先序遍歷演算法遍歷該二叉樹。ps 不能使用遞迴先序遍歷演算法,必須是非遞迴。input 按照滿二叉樹的對應位置 即將輸入的元素層序按從根到葉節點,同層按從左到右輸入 輸入一串資料,資料型別可為整形或字元形式,例...