2017年計算機二級公共基礎知識重點講解:樹與二叉樹

字號:


    1.6 樹與二叉樹
    樹是一種簡單的非線性結構,所有元素之間具有明顯的層次特性。
    在樹結構中,每一個結點只有一個前件,稱為父結點,沒有前件的結點只有一個,稱為樹的根結點,簡稱樹的根。每一個結點可以有多個后件,稱為該結點的子結點。沒有后件的結點稱為葉子結點。
    在樹結構中,一個結點所擁有的后件的個數稱為該結點的度,所有結點中的度稱為樹的度。樹的層次稱為樹的深度。
    二叉樹的特點:(1)非空二叉樹只有一個根結點;(2)每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹。
    二叉樹的基本性質:
    (1)在二叉樹的第k層上,最多有2k-1(k≥1)個結點;
    (2)深度為m的二叉樹最多有2m-1個結點;
    (3)度為0的結點(即葉子結點)總是比度為2的結點多一個;
    (4)具有n個結點的二叉樹,其深度至少為[log2n]+1,其中[log2n]表示取log2n的整數部分;
    (5)具有n個結點的完全二叉樹的深度為[log2n]+1;
    (6)設完全二叉樹共有n個結點。如果從根結點開始,按層序(每一層從左到右)用自然數1,2,….n給結點進行編號(k=1,2….n),有以下結論:
    ①若k=1,則該結點為根結點,它沒有父結點;若k>1,則該結點的父結點編號為INT(k/2);
    ②若2k≤n,則編號為k的結點的左子結點編號為2k;否則該結點無左子結點(也無右子結點);
    ③若2k+1≤n,則編號為k的結點的右子結點編號為2k+1;否則該結點無右子結點。
    滿二叉樹是指除最后一層外,每一層上的所有結點有兩個子結點,則k層上有2k-1個結點深度為m的滿二叉樹有2m-1個結點。
    完全二叉樹是指除最后一層外,每一層上的結點數均達到值,在最后一層上只缺少右邊的若干結點。
    二叉樹存儲結構采用鏈式存儲結構,對于滿二叉樹與完全二叉樹可以按層序進行順序存儲。
    二叉樹的遍歷:
    (1)前序遍歷(DLR),首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;
    (2)中序遍歷(LDR),首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;
    (3)后序遍歷(LRD)首先遍歷左子樹,然后訪問遍歷右子樹,最后訪問根結點。