你應該掌握的——樹和二叉樹

來源:互聯網
上載者:User

我在上課的時候,由於各種原因,上課老師講的自己總不愛聽,現在到火燒眉毛了,才知道這些基礎知識的重要性,現在想想,也沒有那麼的困難。重在理解這些底層的概念,然後考試考的都是一些很簡單的概念和計算,在這裡我來闡述一下樹和二叉樹的一些考點。

基礎知識一點也不能馬虎。所以我們從最基礎的開始說起。

以這棵樹來說幾個基本的概念。


結點的度:一個結點的子樹數目稱為該結點的度。(例如結點1的結點的度為3,結點2的結點的度為3,結點3的結點的度為0)。

樹的度:所有結點度當中,度最高的一個。(樹的度是3)。

葉子結點:應該是:3、5、6、7、9、10

分之結點:除了葉子結點,其他的都稱為分之結點,和葉子結點構成互補的關係。(1、2、4、8)

內部結點:分之結點除了根結點以外的。(2、4、8)

父結點:如5號結點就是2號結點的子結點。

子結點:2號結點是5號結點的父結點。

兄弟結點:5、6、7稱為兄弟結點,出自同一個父親2號結點。

這三個概念是一個相對的概念。

層次:0層、1層、2層、3層。

還有一個公式就能做題了:總結點=所有度結點的和+1(應該是父結點)

樹的遍曆

我們還是根據這圖來看看樹的三種遍曆。

前序走訪:先從根部出發,然後由左向右,一顆一顆樹來完成遍曆。先訪問根再訪問葉子結點,這就是我畫出來的前序走訪圖,箭頭的方向表示遍曆的順序。a為起點。

結果是:1、2、5、6、7、3、4、8、9、10

後序遍曆:顧名思義,就是從葉子結點出發,先遍曆葉子結點再到根結點,最後到父結點。我畫出順序可能會更直觀點。

結果是:5、6、7、2、3、9、10、8、4、1

層次遍曆:按0層、1層、2層、3層,從左至右來遍曆

結果是:1、2、3、4、5、6、7、8、9、10

我們接著就可以來理解二叉樹的重要的特性:

我們找五顆二叉樹來進行分析:這樣分析就簡單多了,我都覺得不用分析了,但是還是說說吧。

1、二叉樹中,第i層上最多有2的i次方個結點(i>=0)。這個很基本,這也是二叉樹和樹的區別。

2、深度為K的二叉樹至多有2的(k+1)次方 -1個結點(k>=0)。(深度為二叉樹中層數最大的分葉節點的層數),滿二叉樹的深度為2,則共有7個結點。

3、對任何一顆二叉樹,如果其葉子結點數為n0,度為2的結點數為n2,則n0=n2+1;(一定不要忘了根結點的度也是2)。

二叉樹的遍曆

前序走訪:應該是怎麼個流程呢:我們看圖。

遍曆的結果是:1、2、4、5、7、8、3、6。從根結點分兩部分,先把左邊的遍曆完,都是從左至右的。

中序遍曆:

結果是:4,2,7,8,5,1,3,6。

後序遍曆:

結果是:4、8、7、5、2、6、3、1

層次遍曆:

結果是:1、2、3、4、5、6、7、8

那麼樹和二叉樹就說這麼多,我相信掌握這麼多,也差不多夠用了哦,對於上面的基礎知識,要是我有不對的地方,希望大家指出哈。


轉自 http://blog.csdn.net/yi_zz/article/details/7396987

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.