資料結構 (二)

2021-07-25 11:25:37 字數 1939 閱讀 2931

第四章 樹和二叉樹

1、對於具有層次結構的資料需要用樹形結構來描述。

2、樹形結構中乙個結點可以有乙個或多個直接後繼。

3、樹是n個結點的有限集合,滿足:當n=0時,稱為空樹;當n>0時,有且僅有乙個稱為根的結點,除根結點外,其餘結點分為m(m>=0)個互不相交的非空集合,這些集合中的每乙個都是一棵樹,稱為根的子樹。

4、森林是m顆互不相交的樹的集合。

5、結點的度:樹上任一結點所擁有的子樹的數目稱為該結點的度。

葉子:度為0的結點成為葉子或終端結點。

樹的度:一棵樹中所有結點的度的最大值稱為該樹的度。

乙個結點的子樹的根稱為該結點的孩子。相應地該結點稱為孩子的雙親。

結點的層次:從根開始算起,根的層次為1,其餘結點的層次為其雙親的層次加1.

樹的高度:一棵樹中所有結點層次數的最大值稱為該樹的高度或深度。

有序樹:若樹中各結點的子樹從左到右是有次序的,不能互換,稱為有序樹。

無序樹:若樹中各結點的子樹都是無次序的,可以互換,則稱為無序樹。

6、二叉樹是n個元素的有限集合,該集合或者為空,或者由乙個根及兩顆互不相交的左子樹和右子樹組成。(左右子樹也均為二叉樹)

7、二叉樹性質:

a 二叉樹第i(i>=1)層上至多有2^(i-1)個結點;

b 深度為k(k>=1)的二叉樹至多有2^k - 1;

c 對任何一顆二叉樹,若度數為0的結點(葉結點)個數為n0,度數為2的結點個數為n2,則n0=n2 + 1;

d 滿二叉樹:深度為k(k>=1)且有2^k - 1個結點的二叉樹為滿二叉樹。

8、完全二叉樹:如果對滿二叉樹按從上到下,從左到右的順序編號,並在最下一層刪去部分結點(刪後最後一層仍有結點),如果刪除的這些結點的編號是連續的且刪除的結點中含有最大編號結點,那麼這棵二叉樹就是完全二叉樹。

含有n個結點的完全二叉樹的深度為log2^n(向下取整)+1;

如果將一顆有n個結點的完全二叉樹按層編號,每層從左到右順序依次為:1,2,3···n。對任一編號為i(1<=i<=n)的結點a有:

若 i=1,則結點a是根;若i>1,則a的雙親parent(a)的編號為 i/2 向下取整;

若 2*i > n,則結點a既無左孩子,也無右孩子;否則a的左孩子的編號為2*i;

若 2*i + 1 > n,則結點a無右孩子;否則,a的右孩子的編號為2*i +1;

9、二叉樹的順序儲存結構

完全二叉樹儲存示例、非完全二叉樹儲存示例:

10、二叉樹的鏈式儲存:

二叉鍊錶:具有n個結點的二叉樹中,有2n個指標域,其中只有n - 1個用來指向結點的左、右孩子,其餘的n + 1個指標域為null。

三叉鍊錶:具有n個結點的二叉樹中,採用二叉鍊錶儲存,有n + 2個指標域為null。

11、二叉樹的遍歷:先序遍歷(根左右)、中序遍歷(左根右)、後序遍歷(左右根)、層次遍歷;

12、二叉樹的先序遍歷非遞迴演算法可以借助棧來實現。

13、樹的儲存結構為:孩子鏈表示法、孩子兄弟鏈表示法、雙親表示法。

15、森林轉換成二叉樹:將每課樹轉換成相應的二叉樹;再將得到的各顆二叉樹根結點是兄弟連線起來。

16、樹的遍歷:先序遍歷(根左右)、後序遍歷(左右根)、層次遍歷。

17、森林遍歷:先序遍歷(根左右)、中序遍歷(左根右)。

18、哈夫曼樹和哈夫曼編碼(這個挺好的理解的,主要求它的平均編碼長度)。

例如:某通訊系統中乙個待傳輸的文字有6個不同字元,它們的出現頻率分別為:0.5、0.8、1.4、2.2、2.3、2.8,試設計哈夫曼編碼:

第一:設計哈夫曼樹;

第二:寫出哈夫曼編碼;

又困了

資料結構 二

字串處理 strlen 用來計算字元的長度,並不包括結束字元 0 空字元長度為0 1 include 2 3 int strlen char string 4 10 int main 11 strcpy char str1,char str2 用來拷貝字串,把str2每個字元都拷貝到str1中,直到...

資料結構(二)

1.順序表和煉表綜合 在遞增有序的順序表中程式設計實現a a b c typedef intelemtype include sqlist.h 即為資料結構 一 順序表部分 include int main else continue else continue output mylist1 sys...

資料結構二

在資料結構一中,我們已經說過了線性表 棧等資料結構。已經對資料結構有了一些初步的了解,那麼我們在這裡在說一說關於佇列和雜湊表的用法。一 佇列 1 定義 佇列是另一種特殊的線性表,它和棧不同,它是允許在一段進行插入,在另一端進行刪除的線性表。允許插入的一頭稱為隊尾,通常用乙個隊尾指標tail指向隊尾元...