【自考】數據結構第四章樹和二叉樹,期末不掛科指南,第6篇

章節簡介

前5篇博客寫的都是線性結構,對於有層級結構的數據須要用樹形結構來描述函數

本章的重要知識點學習

  1. 理解有關樹的基本概念和二叉樹的基本概念
  2. 掌握二叉樹的存儲結構以及遍歷方法
  3. 掌握樹的存儲結構以及樹、森林、二叉樹的相互轉換方法
  4. 梳理掌握哈夫曼樹構造方法和哈夫曼編碼的設計方法

樹的基本概念

核心一句話編碼

線性結構中一個結點至多隻有一個直接後繼,樹形結構一個結點能夠有一個或多個直接後繼設計

認識樹

看圖便可,你要能區分出來哪些是樹,哪些不是樹
code

樹的相關術語

  1. 結點的度:樹上任意結點所擁有的子樹的數目稱爲該結點的度
    blog

  2. 葉子:度爲0的結點稱爲葉子或者終端結點
    博客

  3. 樹的度:一棵樹中全部結點的度的最大值稱爲該樹的度,就是把全部結點的度求和二叉樹

  4. 結點的層次:從根算起,根的層次爲1,其他結點的層次爲其雙親的層次加1
    終端

  5. 樹的高度:一棵樹中全部結點層次數的最大值稱爲該樹的高度或深度遍歷

  6. 還有一些小概念:有序樹、無序樹

樹的相關術語,必定要一開始就明確清晰,後面纔好學習

二叉樹

官方概念:二叉樹是n(n≥0)個元素的有限集合,該集合或者爲空,或者由一個根及兩棵互不相交的左子樹和右子樹組成,其中左子樹和右子樹也均爲二叉樹。二叉樹的任一結點都有兩棵子樹(它們中的任何一個均可以是空子樹),而且這兩棵子樹之間有次序關係,交換位置就成爲一棵不一樣的二叉樹。

左子樹和右子樹,也有的叫作左孩子和右孩子

二叉樹五種基本形態,方塊表示子樹

二叉樹的基本運算(不寫代碼,瞭解重點函數便可)

  1. 初始化
  2. 求雙親
  3. 求左孩子
  4. 求右孩子
  5. 建二叉樹
  6. 先序遍歷!!!
  7. 中序遍歷!!!
  8. 後序遍歷!!!
  9. 層次遍歷!!!
    先序遍歷,中序遍歷,後序遍歷在考試中通常不要求手寫代碼,可是須要你能經過一棵樹結構,輸出最終的結果,這個博客結尾給你們看一下例題

二叉樹性質(很重要,細碎知識點不少)

性質1:二叉樹第i(i≥1)層上至多有2i-1個結點。

不須要死記硬背,實際須要的時候畫一個二叉樹就能夠求出來了

性質2:深度爲k(k≥1)的二叉樹至多有2k-1個結點

依舊能夠推導出來
深度爲1的二叉樹 結點最多爲1
深度爲2的二叉樹 結點最多爲3
深度爲3的二叉樹 結點最多爲7
深度爲k的二叉樹 結點最多爲2k-1

性質3:對任何一棵二叉樹,若度數爲0的結點(葉結點)個數爲n0,度數爲2的結點個數爲n2,則n0 = n2+1

這個性質須要稍微推導一下
先回答一個問題,你知道樹的度數,怎麼計算樹的結點數
例如 樹的度數爲2,結點樹爲幾,這個不難想象,會出現以下狀況

看到這裏不難發現,存在一個公式爲 樹的度數+1=樹的結點樹
那麼咱們開始推導上述公式
假設 二叉樹的0度,1度,2度結點個數爲n0,n1,n2,結點總數爲T
T = n0+n1+n2
樹的度數+1 = T
樹的度數怎麼求?n00+n11+n22 是樹的度數
繼續n0
0+n11+n22 +1 = T = n0+n1+n2
===> 2n2+1=n0+n2
===>n0=n2+1

好了,上述過程,爭取看明白吧

性質4:含有n個結點的徹底二叉樹的深度爲

相關文章
相關標籤/搜索