1.具有n個節(jié)點的樹,有n-1條邊

2.一種樹的實現(xiàn)

每個節(jié)點有一個指向自己第一個孩子的指針,一個指向自己下一個兄弟的指針。

class TreeNode {
    Object value;
    TreeNode firstChild;
    TreeNode nextSibling;
}

3.樹的遍歷方式

主要有三種:先序、后序。
先序:先處理節(jié)點本身,再依次先序遍歷子節(jié)點
后序:先后序遍歷子節(jié)點,再處理節(jié)點本身

二叉樹還有中序遍歷方式:
中序:先中序遍歷子節(jié)點,再處理節(jié)點本身

4.二叉樹

定義:

二叉樹是每個節(jié)點最多只有兩個子節(jié)點的樹

特點:

二叉樹的特點是其深度一般比其節(jié)點數(shù)小很多。許多二叉樹相關(guān)的算法都是因為這個性質(zhì)才有很高的效率。(研究表明二叉樹的平均深度為O根號N;二叉查找樹的的平均深度為OlogN)

特點2:

n個節(jié)點的二叉樹都有n+1個指針指向null。每個節(jié)點2個指針,共2n個。而指向真實節(jié)點的指針只有n-1個,剩下n+1個就指向null啦。

實現(xiàn):

class BinaryNode {
   Object value;
    BinaryNode leftChild;
    BinaryNode rightChild;
}

例題:構(gòu)造表達(dá)式樹

給出一個后綴表達(dá)式,構(gòu)造出一棵表達(dá)式樹。
表達(dá)式樹:樹葉是操作數(shù),根是操作符。
構(gòu)造過程:如果輸入的數(shù)字則壓入棧,如果是操作符則從堆棧里彈出兩項,作為操作符的左右孩子,再把操作符表示的節(jié)點壓入棧里。

二次查找樹

性質(zhì):對于樹中每個節(jié)點X,它的左子樹中所有項的值小于X中的項,而它的右子數(shù)中所有項的值都大于X中的項。
中序遍歷一顆二叉查找樹,就得到了元素的順序輸出。

一種實現(xiàn)

public class BinarySearchTree<T extends Comparable<? super T>> {
    private  class BinaryNode <T>{
    
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容