當前位置:
首頁 > 知識 > 今日學習-『二叉樹』

今日學習-『二叉樹』

」自定義二叉樹結構「

下面代碼實現了二叉樹結構,實現二叉樹的創建,插入子節點以及前序遍歷,中序遍歷和後序遍歷等遍歷方式,同時還支持二叉樹中任意子樹的節點遍歷。

class BinaryTree:
def __init__(self,value):
self._left=None
self._right=None
self._data=value

def insertLeftChild(self,value): #創建左子樹
if self._left:
print("left child tree already exists.")
else:
self._left=BinaryTree(value)
return self._left

def insertRightChild(self,value): #創建右子樹
if self._right:
print("right child tree already exists.")
else:
self._right=BinaryTree(value)
return self._right

def show(self):
print(self._data)

def preOrder(self): #前序遍歷(根左右)
print(self._data)
if self._left:
self._left.preOrder
if self._right:
self._right.preOrder

def postOrder(self): #後序遍歷(左右根)
if self._left:
self._left.postOrder
if self._right:
self._right.postOrder
print(self._data)

def inOrder(self): #中序遍歷(左根右)
if self._left:
self._left.inOrder
print(self._data)
if self._right:
self._right.inOrder

if __name__=="__main__":
print("Please use me as a module.")

將上述代碼保存為BinaryTree.py文件,下面的代碼創建了下圖所示的二叉樹,並對該二叉樹進行遍歷。

今日學習-『二叉樹』

1 ==== RESTART: C:/Users/Administrator/Desktop/時間寶/python/BinaryTree.py ====
2 Please use me as a module.
3 >>> import BinaryTree
4 >>> root=BinaryTree.BinaryTree("root")
5 >>> b=root.insertRightChild("B")
6 >>> a=root.insertLeftChild("A")
7 >>> c=a.insertLeftChild("c")
8 >>> d=b.insertRightChild("D")
9 >>> e=c.insertLeftChild("E")
10 >>> f=e.insertLeftChild("F")
11 >>> root.inOrder
12 F
13 E
14 c
15 A
16 root
17 B
18 D
19 >>> root.inOrder
20 F
21 E
22 c
23 A
24 root
25 B
26 D
27 >>> root.postOrder
28 F
29 E
30 c
31 A
32 D
33 B
34 root
35 >>> b.inOrder
36 B
37 D

以上就是我的今日總結,有什麼問題或者錯誤可以告訴我喲!繼續加油,努力!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

Servlet做簡單的ajax增刪改查(分頁)
Oracle 11g DG手工switchover切換標準化流程
Oracle PL/SQL引用型變數
linux 自動備份資料庫

TAG:達人科技 |

您可能感興趣

風水擇吉學習-二十四山-辰山戌向擇日
風水擇吉學習-二十四山-巽山乾向擇日
風水擇吉學習-二十四山-巳山亥向擇日
風水學習-二十四山擇吉-艮山坤向擇日
風水學習-二十四山擇吉-艮山坤向擇日
風水擇吉學習-二十四山-丑山未向擇日
風水擇吉學習-二十四山-癸山丁向擇日
風水擇吉學習-二十四山-子山午向擇日
風水擇吉學習-二十四山-子山午向擇日
風水擇吉學習-二十四山-寅山申向擇日
二十四山-壬山丙向-日課大全——風水擇吉學習
學習乾貨 日語的學習
每日學習一個學位:湧泉穴
每日十分鐘經典學習
在陝西教育學院學習的日子
【日語學習】N2-N3辭彙練習
學霸分享 日語學習經驗
學習日!四六級每日單詞 帶音標
學習日語的一些建議
每天學習一點古人智慧(2)