数据结构 树和二叉树
樹的概念
樹是一種非線性的數據結構,它是由n(n>=0)個有限結點組成一個具有層次關系的集合。把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的
樹的表示:
樹結構相對線性表就比較復雜了,要存儲表示起來就比較麻煩了,實際中樹有很多表示方式,如:雙親表示法,孩子表示法,孩子兄弟表示法等等。我們這里來了解最常用的孩子兄弟表示法
二叉樹的概念及結構
二叉樹是樹形結構的一個重要類型。許多實際問題抽象出來的結構往往是二叉樹形式,即使是一般的樹也只能簡單地轉換為二叉樹,而且二叉樹的存儲結構及其算法都較為簡單,因此二叉樹顯得特別重要。二叉樹特點是每個結點最多只能有兩棵子樹,且有左右之分
一棵二叉樹是節點的一個有限集合,該集合或者為空,或者是由一個根節點加上兩棵別稱為左子樹和右子樹的二叉樹組成
二叉樹的特點:
特殊的二叉樹
**滿二叉樹:**一個二叉樹,如果每一個層的節點數都達到最大值(2),則這個二叉樹就是滿二叉樹
也就是說,如果一個二叉樹的層數為k,且節點總數是(2^k) -1,則它就是滿二叉樹
在一棵二叉樹中,如果所有分支節點都存在左子樹和右子樹,并且所有葉節點都在同一層上,這樣的一棵二叉樹稱作完美二叉樹(滿二叉樹)
**完全二叉樹:**完全二叉樹是效率很高的數據結構,完全二叉樹是由滿二叉樹引出來的。對于深度為k的,有n個節點的二叉樹,當且僅當其每一個節點都與深度為k的滿二叉樹中編號從1至n的節點–對應時稱之為完全二叉樹。要注意的是滿二叉樹是一種特殊的完全二叉樹
而在一棵二叉樹中,除最后一層外,若其余層都是滿的,并且或者最后一層是滿的,或者是在右邊缺少連續若干結點,則此二叉樹為完全二叉樹
完全二叉樹是最理想的樹的結構,很容易證明有n個節點的完全二叉樹的深度為O(logN)
總結
以上是生活随笔為你收集整理的数据结构 树和二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。