二叉樹排序是比較有意思的一種排序方法,而且也便於操作。二叉樹的排序過程主要是二叉樹的建立和遍歷的過程。例如有一組資料"3,5,7,20,43,2,15,30",則二叉樹的建立過程如下:
下面用例子作為真實效果模擬
實驗效果:
實驗**:
# -*- coding:utf-8 -*-
class
btree
:def
__init__
(self, value)
: self.left =
none
self.data = value
self.right =
none
definsertleft
(self, value)
: self.left = btree(value)
return self.left
definsertright
(self, value)
: self.right = btree(value)
return self.right
defshow
(self)
:print
(self.data)
definorder
(node)
:if node.data:
if node.left:
inorder(node.left)
node.show(
)if node.right:
inorder(node.right)
definsert
(node, value)
:if value > node.data:
if node.right:
insert(node.right,value)
else
: node.insertright(value)
else
:if node.left:
insert(node.left, value)
else
: node.insertleft(value)
if __name__ ==
'__main__'
: l =[3
,5,7
,20,43
,2,15
,30] root = btree(l[0]
) node = root
for i in
range(1
,len
(l))
: insert(root,l[i]
)print
('*************************'
)print
(" 從小到大"
)print
('*************************'
) inorder(root)
遞迴實現二叉樹
二叉樹是一種非線性結構,用途廣泛。二叉樹的每個結點的度都不大於2,所以一般用二叉鍊錶來實現二叉樹。二叉樹可以分為根結點,左子樹和右子樹,左子樹 右子樹依然這麼劃分,所以用遞迴實現二叉樹的邏輯是比較簡單的,只需不斷對子樹進行劃分即可。include include include using name...
二叉樹,排序二叉樹
說到二叉樹,這可是資料結構裡面的非常重要的一種資料結構,二叉樹是樹的一種,本身具有遞迴性質,所以基於二叉樹的一些演算法很容易用遞迴演算法去實現。作為一種非線性結構,比起線性結構還是相對複雜的,很多人甚至看不懂演算法的意思,不能理解。其實一開始接觸這些東西還是挺暈的,不過你多看幾遍,上機實現可能你就會...
二叉樹遍歷遞迴實現
include include define flag int define l 0 define r 1 typedef struct tree tree tree init tree int data void destroy tree tree root void insert tree t,...