python之二叉樹

2021-08-20 13:13:54 字數 1574 閱讀 6650

二叉樹是資料結構中的一種資料結構,在用python搭建決策樹模型時,發現需要先實現多叉樹.

#usr/bin/python

#-*-coding:utf-8-*-

#面對物件程式設計:思想:面對物件永遠不能包含物件

#二叉樹:

class btree:

root=none

class node:

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)

def zhongxu(self):

self.root.zhongxu()

if __name__ == '__main__':

btree = btree()

btree.add(13)

btree.add(7)

btree.add(21)

btree.add(11)

btree.add(17)

btree.add(9)

btree.add(14)

btree.add(5)

btree.add(3)

btree.add(10)

btree.zhongxu()

小練習:如果有100個小孩在圍成一圈做遊戲,從頭開始報數每當喊道第三個人的時候,那人將退出遊戲.問最後乙個是哪個小孩?

xiaohai=[i for i in range(1,11)]

count=0

while true:

if len(xiaohai)==1:

break

count+=1

if count%3==0:

xiaohai.pop(0)

else:

print('每次報數的順序是:',xiaohai)

print('剩餘最後乙個小孩是:',xiaohai,'號')

二叉樹之 二叉樹深度

二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...

樹之二叉樹

二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。滿二叉樹 在二叉樹的第i 層上有2 i 1 個結點,深度為k的二叉樹有2 k 1個結點的二叉樹。則此二叉樹稱為 滿二叉...

二叉樹(二)之二叉查詢樹

目錄 一 二叉查詢樹的概念 二 二叉查詢樹的實現 三 二叉查詢樹 binary search tree 又被稱為二叉搜尋樹。它是特殊的二叉樹 對於二叉樹,假設x為二叉樹中的任意乙個結點,x節點包含關鍵字key,節點x的key值記為key x 如果y是x的左子樹中的乙個結點,則key y key x ...