您好,登錄后才能下訂單哦!
Python中的樹與二叉樹是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
樹是一類重要的非線性數據結構,是以分支關系定義的層次結構
定義:
樹(tree)是n(n>0)個結點的有限集T,其中: 有且僅有一個特定的結點,稱為樹的根(root)
當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,……Tm,其中每一個集合本身又是一棵樹,稱為根的子樹(subtree)
特點: 樹中至少有一個結點——根 樹中各子樹是互不相交的集合
基本術語
結點(node)——表示樹中的元素,包括數據項及若干指向其子樹的分支
結點的度(degree)——結點擁有的子樹數 葉子(leaf)——度為0的結點
孩子(child)——結點子樹的根稱為該結點的孩子
雙親(parents)——孩子結點的上層結點叫該結點的~
兄弟(sibling)——同一雙親的孩子
樹的度——一棵樹中最大的結點度數
結點的層次(level)——從根結點算起,根為第一層,它的孩子為第二層……
深度(depth)——樹中結點的最大層次數
森林(forest)——m(m?0)棵互不相交的樹的集合
二叉樹二叉樹是有限個元素的集合,該集合或者為空、或者有一個稱為根節點(root)的元素及兩個互不相交的、分別被稱為左子樹和右子樹的二叉樹組成。
二叉樹的每個結點至多只有二棵子樹(不存在度大于2的結點),二叉樹的子樹有左右之分,次序不能顛倒。
二叉樹的第i層至多有2^{i-1}個結點
深度為k的二叉樹至多有2^k-1個結點;
對任何一棵二叉樹T,如果其終端結點數為N0,度為2的結點數為N2,則N0=N2+1
遍歷二叉樹
前序遍歷
若樹為空,則空操作返回。否則,先訪問根節點,然后前序遍歷左子樹,再前序遍歷右子樹。(W)型 (中 左 右)
中序遍歷
若樹為空,則空操作返回。否則,從根節點開始(注意并不是先訪問根節點),中序遍歷根節點的左子樹,然后是訪問根節點,最后中序遍歷根節點的右子樹。(M)型,(左 中 右)
后續遍歷
若樹為空,則空操作返回。否則,從左到右先葉子后節點的方式遍歷訪問左右子樹,最后訪問根節點。(左右中)逆時針型 (左 右 中)
層序遍歷
若樹為空,則空操作返回。否則,從樹的第一層,也就是根節點開始訪問,從上到下逐層遍歷,在同一層中,按從左到右的順序結點逐個訪問。
關于Python中的樹與二叉樹是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。