python二叉數排序

2021-08-20 13:06:26 字數 1722 閱讀 7440

在物件導向中 物件不能包含物件

用 引用來控制物件

排序    二叉數:

class btree:

root=none

#根class node:

#建立了3個盒子

data=none

left=none

right=none

# 核心

def zhongxu(self):

if self.left is not none:

self.left.zhongxu()

print(self.data)

if self.right is not none:

self.right.zhongxu()

def add(self,node): 

#節點對比

if self.data > node.data:

if self.left is none:

self.left=node

else:

self.left.add(node)

if self.data < node.data:

if self.right is none:

self.right=node

else:

self.right.add(node)

def add(self,data):

node=self.node()

node.data=data

if self.root is none:

self.root=node

else:

self.root.add(node) 

#去add裡麼對比

def zhongxu(self):

self.root.zhongxu()

if __name__=="__main__":

btree = btree()

btree.add(13)

btree.add(6)

btree.add(9)

btree.add(23)

btree.add(58)

btree.add(0)

btree.add(78)

btree.add(-1)

btree.zhongxu()

如圖:

知識延伸:

排序分為:1.時間複雜度  2.空間複雜度

氣泡排序:時間、空間複雜度都高

知識問答:

從1--100開始數,有10個小孩圍成乙個圈,每個小孩代表1個數,只要是3的倍數,就把那個小孩排除,問最後剩下第幾個小孩

(注:最後只能剩下乙個)?

iaohai=[i for i in range(1,11)]#10個小孩

count = 0

while true:

if len(xiaohai) ==1:

break

count +=1

if count %3 ==0:

xiaohai.pop(0)

else:

print(xiaohai)

如圖:

答:最後剩下第4個小孩

完畢!

數與二叉數

實驗目的 1.熟悉樹的各種儲存結構的特性 2.掌握採用二叉鍊錶作為儲存結構的樹的相關演算法 實驗內容 1.按先序序列構造二叉鍊錶 creatbitree 2.實現函式用於計算結點的總個數 countnode 3.實現函式用於計算葉子結點的個數 countleaf 4.實現函式 inorder 用於輸...

python 二叉排序樹

usr bin env python class btnode def init self,data,left,right self.data data self.left left self.right right class btree def init self,root self.root ...

二叉查詢數

二叉查詢樹,或者是一顆空樹,具備以下性質得二叉樹 1,若它的左子樹不空,則其左子樹上的所有結點的值均小於它根結點的值 2,若它的右子樹不空,則其右子樹上的所有結點的值均大於它根結點的值 3,它的左 右子樹也分別為二叉查詢樹 具體如下圖 查詢操作 在二叉查詢樹中查詢x的過程如下 1 若二叉樹是空樹,則...