# coding=utf-8
# coding=utf-8
class
treenode
:def
__init__
(self,val,left=
none
,right=
none):
self.val=val;
self.left=left;
self.right=right;
defcreattree()
: node = treenode(0)
; temp=
input
('請輸入:');
if temp==
'#':
return
none
else
: node.val=temp;
node.left=creattree();
node.right=creattree();
return node
return node
defprintf
(treenode)
:if treenode:
print
(treenode.val)
; printf(treenode.left)
; printf(treenode.right)
;if __name__ ==
'__main__'
: printf(creattree())
;
圖上方法是正確的,但是有幾個分叉就要幾個#,這才能結束。
以下錯誤
def
creattree
(node)
: temp=
input
('請輸入:');
if temp==
'#':
return
none
else
: node.val=temp;
node.left=creattree(node)
; node.right=creattree(node)
;return node
return node
這個node到底是哪個node??計算機會出錯。直接方法裡面例化即可。 遞迴建立二叉樹
通常對於二叉樹的建立採用兩種方式 遞迴建立和非遞迴建立。本文在這裡採用遞迴方法建立二叉樹,並且敘述有關二叉樹三種遍歷方式以及求有關節點的相關問題等。首先定義乙個有關二叉樹的結構體,結構體中包含整型的data,以及結構體型別的左右子樹left和right。然後是建立有關二叉樹的結點,相關 如下 typ...
非遞迴建立二叉樹
通過二叉鍊錶建立二叉樹,二叉鍊錶的節點結構如下 template class t struct binode 二叉樹類的結構如下 template class t class bitree 二叉樹建立的過程如下圖所示 可以利用棧來實現非遞迴建立,另外還需要建立一種棧節點結構,該結構包括 注意 sta...
建立二叉樹 後序建立二叉樹
由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...