Python樹的學習

2021-10-09 14:45:08 字數 2111 閱讀 7765

快要畢業了但是**能力實在是太差了,想要刷leetcode但是發現,自己連樹的python都無法實現,萬事開頭難,做一些學習和記錄。

class

binarytree

:def

__init__

(self,rootvalue)

: self.rootvalue = rootvalue

self.leftchild =

none

self.rightchild =

none

注意對於非常小白的小白而言,需要了解python中的類以及類中__init__的用法,其次要了解樹的結構,可參考木水的文章,本篇文章也是在此基礎上分享一些自己的想法和學到的經驗,與大家一起學習進步~

def

insertleft

(self,newvalue)

:if self.leftchild ==

none

: self.leftchild = binarytree(newvalue)

else

: t = binarytree(newvalue)

t.leftchild = self.leftchild

self.leftchild = t

definsertright

(self,newvalue)

:if self.rightchild ==

none

: self.rightchild = binarytree(newvalue)

else

: t = binarytree(newvalue)

t.rightchild = self.rightchild

self.rightchild = t

我的**其實並不是十分規範,參考之後要自己上手進行練習,在插入左右子樹之前需要對節點的左右子樹是否為空進行判斷,兩者的插入方式並不相同。用t來先創立以新的插入值建立的子樹t = binarytree(newvalue)可能你並不明白我在說什麼,自己上手簡單程式設計即可明白。

樹應當具有基本功能,查詢左右子樹,查詢值和更新值

def

getrightchild

(self)

:return self.rightchild

defgetleftchild

(self)

:return self.leftchild

defgetrootvalue

(self)

:return self.rootvalue

defsetrootvalue

(self,value)

: self.rootvalue = value

a = binarytree(

'1')

a.insertleft(

'l')

a.insertright(

'r')

print

(a.getrootvalue(

),a.getleftchild(

).rootvalue,a.rightchild)

a.insertleft(

'l')

print

(a.getleftchild(

).rootvalue,a.getleftchild(

).getleftchild(

).rootvalue)

結果

1 l <__main__.binarytree object at 0x00000218acfed748

>

l l程序已結束,退出** 0

會發現其實如果想要得到節點的值,既可以用a.getrootvalue(),也可以用a.rootvalue,注意後面一種是沒有括號()的。在使用的過程中時刻牢記使用的是樹結構,呼叫的是值還是函式,否則會很混亂。

學習筆記 Python實現樹的遍歷 (DFS)

學習了通過python實現樹的遍歷 dfs 自己還原了一下 樹 dfs class treenode object def init self,x self.val x self.left none self.right none if name main 構建樹 t1 treenode 1 t2 ...

Python學習week5 樹的特性

1 樹 非線性結構,每個元素可以有多個前驅和後繼 2 樹的結點 樹種的資料元素 結點的度 結點擁有子樹的數目 1 二叉樹 每個結點最多2棵子樹 二叉樹是有序樹,左子樹 右子樹是順序的,不能交換次順 2 滿二叉樹 一顆二叉樹的所有分支結點都存在左子樹和右子樹,並且所有葉子結點只存在最下面一層 k為深度...

機器學習python實戰 決策樹

決策樹演算法是一種逼近離散函式值的方法 通過把例項從根節點排列到某個葉子結點來對例項分類。葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開始,測試這個結點的屬性,然後按照給定例項的屬性值對...