python實現遞迴二叉樹排序

2021-10-08 01:28:04 字數 1525 閱讀 4623

二叉樹排序是比較有意思的一種排序方法,而且也便於操作。二叉樹的排序過程主要是二叉樹的建立和遍歷的過程。例如有一組資料"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,...