python二叉樹(shù)的實(shí)現(xiàn)實(shí)例
樹(shù)的定義
樹(shù)是一種重要的非線性數(shù)據(jù)結(jié)構(gòu),直觀地看,它是數(shù)據(jù)元素(在樹(shù)中稱為結(jié)點(diǎn))按分支關(guān)系組織起來(lái)的結(jié)構(gòu),很象自然界中的樹(shù)那樣。樹(shù)結(jié)構(gòu)在客觀世界中廣泛存在,如人類社會(huì)的族譜和各種社會(huì)組織機(jī)構(gòu)都可用樹(shù)形象表示。樹(shù)在計(jì)算機(jī)領(lǐng)域中也得到廣泛應(yīng)用,如在編譯源程序時(shí),可用樹(shù)表示源程序的語(yǔ)法結(jié)構(gòu)。又如在數(shù)據(jù)庫(kù)系統(tǒng)中,樹(shù)型結(jié)構(gòu)也是信息的重要組織形式之一。一切具有層次關(guān)系的問(wèn)題都可用樹(shù)來(lái)描述。
樹(shù)結(jié)構(gòu)的特點(diǎn)是:它的每一個(gè)結(jié)點(diǎn)都可以有不止一個(gè)直接后繼,除根結(jié)點(diǎn)外的所有結(jié)點(diǎn)都有且只有一個(gè)直接前驅(qū)。
樹(shù)的遞歸定義如下:(1)至少有一個(gè)結(jié)點(diǎn)(稱為根)(2)其它是互不相交的子樹(shù)
二叉樹(shù):
二叉樹(shù)是由n(n≥0)個(gè)結(jié)點(diǎn)組成的有限集合、每個(gè)結(jié)點(diǎn)最多有兩個(gè)子樹(shù)的有序樹(shù)。它或者是空集,或者是由一個(gè)根和稱為左、右子樹(shù)的兩個(gè)不相交的二叉樹(shù)組成。
二叉樹(shù)特點(diǎn):
(1)二叉樹(shù)是有序樹(shù),即使只有一個(gè)子樹(shù),也必須區(qū)分左、右子樹(shù);
(2)二叉樹(shù)的每個(gè)結(jié)點(diǎn)的度不能大于2,只能取0、1、2三者之一;
(3)二叉樹(shù)中所有結(jié)點(diǎn)的形態(tài)有5種:空結(jié)點(diǎn)、無(wú)左右子樹(shù)的結(jié)點(diǎn)、只有左子樹(shù)的結(jié)點(diǎn)、只有右子樹(shù)的結(jié)點(diǎn)和具有左右子樹(shù)的結(jié)點(diǎn)。
二叉樹(shù)基本的數(shù)據(jù)結(jié)構(gòu)
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TreeNode(object):
def __init__(self,data,left,right):
self.data = data
self.left = left
self.right = right
class BTree(object):
def __init__(self,root=0):
self.root = root
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的建立實(shí)例
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的遍歷實(shí)例
- Python中的二叉樹(shù)查找算法模塊使用指南
- Python利用前序和中序遍歷結(jié)果重建二叉樹(shù)的方法
- python數(shù)據(jù)結(jié)構(gòu)樹(shù)和二叉樹(shù)簡(jiǎn)介
- python二叉樹(shù)遍歷的實(shí)現(xiàn)方法
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的統(tǒng)計(jì)與轉(zhuǎn)換實(shí)例
- Python實(shí)現(xiàn)重建二叉樹(shù)的三種方法詳解
- Python簡(jiǎn)單定義與使用二叉樹(shù)示例
- Python二叉樹(shù)初識(shí)(新手也秒懂!)
相關(guān)文章
Python輸出PowerPoint(ppt)文件中全部文字信息的方法
這篇文章主要介紹了Python輸出PowerPoint(ppt)文件中全部文字信息的方法,涉及Python通過(guò)windows中com組件操作ppt的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04python正則實(shí)現(xiàn)計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了python正則實(shí)現(xiàn)計(jì)算器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件
這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)自定義流體混合窗口部件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04python:pandas合并csv文件的方法(圖書(shū)數(shù)據(jù)集成)
下面小編就為大家分享一篇python:pandas合并csv文件的方法(圖書(shū)數(shù)據(jù)集成),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python利用Gradio與EasyOCR構(gòu)建在線識(shí)別文本的Web應(yīng)用
隨著人工智能的不斷發(fā)展,各種智能算法越來(lái)越普遍,本文就給大家介紹一種通過(guò)訓(xùn)練好的算法進(jìn)行文字識(shí)別的方法,而且是Web頁(yè)面可視化操作,方便調(diào)用,希望大家喜歡2023-04-04Python?matplotlib如何簡(jiǎn)單繪制不同類型的表格
通過(guò)Matplotlib,開(kāi)發(fā)者可以僅需要幾行代碼,便可以生成繪圖,直方圖,功率譜,條形圖,錯(cuò)誤圖,散點(diǎn)圖等,下面這篇文章主要給大家介紹了關(guān)于Python?matplotlib如何簡(jiǎn)單繪制不同類型表格的相關(guān)資料,需要的朋友可以參考下2022-07-07詳解Python在使用JSON時(shí)需要注意的編碼問(wèn)題
這篇文章主要介紹了詳解Python在使用JSON時(shí)需要注意的編碼問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12