數據結構-樹


判斷題

1.'關於樹和二叉樹

二叉樹是度為 2 的樹。

     T      F

2.具有10個葉結點的二叉樹中,有9個度為2的結點。

     T      F

3.某二叉樹的前序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無左孩子。

     T      F

4.若一個結點是某二叉樹的中序遍歷序列的最后一個結點,則它必是該樹的前序遍歷序列中的最后一個結點。

     T      F

5.某二叉樹的前序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無右孩子。

     T      F

6.若AB都是一棵二叉樹的葉子結點,則存在這樣的二叉樹,其前序遍歷序列為...A...B...,而中序遍歷序列為...B...A...

     T      F

先序中序后序是對根結點而言的,葉子結點的順序保持不變。

7.二叉樹的前序遍歷並不能唯一確定這棵樹,但是如果我們還知道該樹的根結點是那一個,則可以確定這棵二叉樹( )。

     T      F

8.將一棵完全二叉樹存於數組中(根結點的下標為1)。則下標為23和24的兩個結點是兄弟。

     T      F

選擇題

1.設樹T的度為4,其中度為1、2、3、4的結點個數分別為4、2、1、1。則T中有多少個葉子結點?

     A.4
     B.6
     C.8
     D.10

結點個數和度數滿足下面的公式:

\[\color{red}{\sum\limits_{i=1}^{n}Degree(i)+1=n} \]

2.設每個d叉樹的結點有d個指針指向子樹,有n個結點的d叉樹有多少空鏈域?

     A.nd
     B.n(d−1)
     C.n(d−1)+1
     D.以上都不是

3.已知一棵二叉樹的先序遍歷結果是ABC,則以下哪個序列是不可能的中序遍歷結果:

     A.ABC
     B.BAC
     C.CBA
     D.CAB

葉子結點的相對順序不能變,A肯定是根結點,C一定是葉子結點,B不一定,可以排除A、B,中序CAB說明B和C都是葉子結點,所以錯。

4.給定二叉樹如下圖所示。設N代表二叉樹的根,L代表根結點的左子樹,R代表根結點的右子樹。若遍歷后的結點序列為3、1、7、5、6、2、4,則其遍歷方式是:

img

     A.NRL
     B.RNL
     C.LRN
     D.RLN

5.設高為h的二叉樹(規定葉子結點的高度為1)只有度為0和2的結點,則此類二叉樹的最少結點數和最多結點數分別為:

     A.2h, 2 h−1
     B.2h−1, 2 h−1
     C.2h−1, 2 h-1−1
     D.2 h-1+1, 2 h−1

最少的情況為除了第一層,其他層結點個數為0;最多的情況是滿二叉樹。

6.在下述結論中,正確的是:

①只有一個結點的二叉樹的度為0;

②二叉樹的度為2;

③二叉樹的左右子樹可任意交換;

④深度為K的完全二叉樹的結點個數小於或等於深度相同的滿二叉樹。

     A.①④
     B.②④
     C.①②③
     D.②③④

7.任何一棵二叉樹的葉結點在先序、中序和后序遍歷序列中的相對次序

     A.發生改變
     B.不發生改變
     C.不能確定
     D.以上都不對

8.如果二叉樹的前序遍歷結果是12345,后序遍歷結果是32541,那么該二叉樹的中序遍歷結果是什么?

     A.23145
     B.23154
     C.24135
     D.無法確定

能確定2和4一定是1的子節點,但無法確定3和5,先序和后序不能確定樹。

9.要使一棵非空二叉樹的先序序列與中序序列相同,其所有非葉結點須滿足的條件是:

     A.只有左子樹
     B.只有右子樹
     C.結點的度均為1
     D.結點的度均為2

10.已知一棵二叉樹的樹形如下圖所示,其后序序列為{ e, a, c, b, d, g, f }。樹中與結點a同層的結點是:

img

     A.c
     B.d
     C.f
     D.g

11.如果二叉樹的后序遍歷結果是FDEBGCA,中序遍歷結果是FDBEACG,那么該二叉樹的前序遍歷結果是什么?

     A.ABCDEFG
     B.ABDFEGC
     C.ABDFECG
     D.ABDEFCG

12.已知二叉樹的后序遍歷是dabec,中序遍歷是debac,則其前序遍歷是()。

     A.acbed
     B.decab
     C.deabc
     D.cedba

13.某二叉樹的先序序列和后序序列正好相反,則下列說法錯誤的是()。

     A.二叉樹不存在
     B.若二叉樹不為空,則二叉樹的深度等於結點數
     C.若二叉樹不為空,則任一結點不能同時擁有左孩子和 右孩子
     D.若二叉樹不為空,則任一結點的度均為1

14.對二叉樹的結點從1開始進行編號,要求每個結點的編號大於其左右孩子的編號,同一結點的左右孩子中,其左孩子的編號小於其右孩子的編號,可采用()遍歷實現編號。

     A.中序
     B.后序
     C.層序
     D.先序

15.在一非空二叉樹的中序遍歷中,根結點的右邊()。

     A.只有右子樹上的所有結點
     B.只有右子樹上的部分結點
     C.只有左子樹上的部分結點
     D.只有左子樹上的全部結點

16.一棵樹可轉換成為與其對應的二叉樹,則下面敘述正確的是()。

     A.樹的先根遍歷序列與其對應的二叉樹的先序 遍歷相同
     B.樹的后根遍歷序列與其對應的二叉樹的后序遍歷相同
     C.樹的先根遍歷序列與其對應的二叉樹的中序遍歷相同
     D.以上都不對

將樹轉換成與其對應的二叉樹,將結點的孩子放在左子樹;將結點的兄弟放在右子樹。

17.已知一棵二叉樹的先序序列和中序序列分別為GFDBHCEA和DFHBGCAE,則該二叉樹的后序序列為()。

     A.DHBFAECG
     B.DHBFEACG
     C.DBHFAECG
     D.DFAEHBCG

18.設x和y是二叉樹中的任意兩個結點,若在先序遍歷中x在y之前,而在后序遍歷中x在y之后,則x和y的關系是()。

     A.x是y的左兄弟
     B.x是y的右兄弟
     C.x是y的祖先
     D.x是y的子孫

19.以下算法的功能是()。

int function(BTreeNode* BT, ElemType x){
   int n=0;
   if(BT!=NULL)
   {   
        if(BT->data==x)   n++;
        n+= function (BT->left, x);
        n+= function (BT->right, x);
}
   return n;
}
     A.求二叉樹結點個數
     B.求二叉樹中值為x的結點個數
     C.求二叉樹中值為x結點為根的子樹結點數
     D.求二叉樹左右子樹結點數

20.以下算法的功能是()。

void test(bitree *t)
{
   if (t) 
   {
      test(t->lchild);
      test(t->rchild);
      cout<<t->data;
   }
}
     A.輸出二叉樹的根結點值
     B.前序遍歷二叉樹
     C.中序遍歷二叉樹
     D.后序遍歷二叉樹

21.一棵有1025個結點的二叉樹的高度為多少?

     A.10
     B.11
     C.11~1025之間
     D.10~1024之間

小心不一定是完全二叉樹

22.一棵度為4的樹中有20個度為4的結點、10個度為3的結點、1個度為2的結點和10個度為1的結點, 則葉子結點有多少個?

     A.41
     B.82
     C.113
     D.122

程序填空題

下列代碼的功能是將二叉樹T中的結點按照層序遍歷的順序輸出。

typedef struct TreeNode *Tree;
struct TreeNode
{
    int Key;
    Tree Left;
    Tree Right;
};

void Level_order ( Tree T )
{
    Queue Q;
    if ( !T ) return;
    Q = CreateQueue( MaxElements );
    Enqueue( T, Q );
    while ( !IsEmpty( Q ) ){
        T = Front_Dequeue ( Q ); /* return the front element and delete it from Q */
        printf("%d ", T->Key);
        if ( T->Left )
            (3分);
        if ( (3分) )
            (3分);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM