1-1關於樹和二叉樹
二叉樹是度為 2 的樹。(2分)
f
1-2
二叉樹通常有順序儲存結構和鏈式儲存結構。 (2分)
t
1-3
一棵有124個結點的完全二叉樹,其葉結點個數是確定的。 (2分)
t
1-4
某二叉樹的後序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無右孩子。 (2分)
t
1-5
堆排序是穩定的。 (2分)
f
1-6
哈夫曼編碼是一種最優的字首碼。對乙個給定的字符集及其字元頻率,其哈夫曼編碼不一定是唯一的,但是每個字元的哈夫曼碼的長度一定是唯一的。(2分)
f
1-7
對一棵二叉排序樹按前序方法遍歷得出的結點序列是從小到大的序列。 (2分)
f
1-8
對**l樹中的任一結點,其左子樹的高度一定比其右子樹的高度要高。 (2分)
f
2-1
一棵二叉樹中,雙分支結點數為15,單分支結點數為30,則葉子結點數為()個。 (3分)
1. 15
2. 16
3. 17
4. 47
2
2-2
先序遍歷圖示二叉樹的結果為 (3分)
1. a,b,c,d,h,e,i,f,g
2. a,b,d,h,i,e,c,f,g
3. h,d,i,b,e,a,f,c,g
4. h,i,d,b,e,f,g,a,c
2
2-3
已知一棵完全二叉樹的第9層(設根為第1層)有100個葉結點,則該完全二叉樹的結點個數最多是: (3分)
1. 311
2. 823
3. 1847
4. 無法確定
2
2-4
以二叉鍊錶作為二叉樹的儲存結構,在具有 n 個結點的二叉鍊錶中(n>0),空鏈域的個數為 __ (3分)
1. n+1
2. n
3. n−1
4. 無法確定
1
2-5
對n個記錄進行堆排序,最壞的情況下時間複雜度是: (3分)
1. o(logn)
2. o(n)
3. o(nlogn)
4. o(n^2)
2
2-6
一組記錄為(46,79,56,38,40,84)則利用堆排序的方法建立的初始大根堆為( ) (3分)
1. 79,46,56,38,40,84
2. 84,79,56,38,40,46
3. 84,79,56,46,40,38
4. 84,56,79,40,46,38
3
2-7
如果二叉樹的後序遍歷結果是fdebgca,中序遍歷結果是fdbeacg,那麼該二叉樹的前序遍歷結果是什麼? (3分)
1. abcdefg
2. abdfegc
3. abdfecg
4. abdefcg
2
2-8
將依次插入初始為空的二叉排序樹,則該樹的中序遍歷結果是。 (3分)
1. 2, 10, 15, 28, 32, 65
2. 32, 2, 10, 15, 28, 65
3. 10, 28, 15, 2, 65, 32
4. 32, 2, 15, 10, 28, 65
3
2-9
引入二叉線索樹的目的是( )。 (3分)
1. 加快查詢結點的前驅或後繼的速度
2. 為了能在二叉樹中方便的進行插入與刪除
3. 為了能方便的找到雙親
4. 使二叉樹的遍歷結果唯一
1
2-10
設森林t中有4棵樹,第
一、二、三、四棵樹的結點個數分別是n1,n2,n3,n4,那麼當把森林t轉換成一棵二叉樹後,且根結點的左子樹上有( )個結點。 (3分)
1. n1-1
2. n1
3. n1+n2+n3
4. n2+n3+n4
1
2-11
根據使用頻率為5個字元設計的哈夫曼編碼不可能是( )。 (3分)
1. 111,110,10,01,00
2. 000,001,010,011,1
3. 100,11,10,1,0
4. 001,000,01,11,10
4
2-12
已知權值集合為,計算帶權路徑長度wpl()。 (3分)
1. 73
2. 74
3. 75
4. 76
2
```cpp
#include
using namespace std;
typedef struct binode
bitnode,
*bitree;
void
createbitree
(bitree &t)
}int
depth
(bitree t)
}int
main()
#include
using
namespace std;
typedef
struct elemtypeelemtype;
typedef
struct bstnodebstnode,
*bstree;
int flag=1;
bstree searchbst
(bstree t,
char key)
void
insertbst
(bstree &t,elemtype e );//實現細節隱藏
void
createbst
(bstree &t )
}int
main()
else
return0;
}
#include
#include
#include
char a[
1000];
int ant =
0,c =0;
typedef
struct node
node;
node *
creatnode()
node *
creattree()
node *head =
creatnode()
; head -
> data = a[ant ++];
head -
> left =
creattree()
; head -
> right =
creattree()
;if(head -
> left ==
null
&& head -
> right ==
null
)c ++
;return head;
}void
inorder
(node *t)
intmain()
第三次資料結構上機
實驗題目 編寫乙個程式exp3 6.cpp,求解皇后問題 在n n的方格棋盤上,放置n個皇后,要求每個皇后不同行 不同列 不同左右對角線。要求 1 皇后的個數n由使用者輸入,其值不能超過20,輸出所有的解。2 採用類似於棧求解迷宮問題的方法。實驗步驟 包括基本設計思路 演算法設計 函式相關說明 輸入...
第三次資料結構作業
a.連續線段 題目描述 給定若干個線段,求最多的首尾相連的線段條數,線段 100 題目解決 我其實不太知道這道題目用現在的知識應該怎麼解?寫了個最短 長 路演算法,floyd那種的,怎麼抽象這個模型呢,就是把每乙個線段都抽象成圖論模型中的乙個點,如果兩條線段首尾相連就給他們倆中間連一條邊長為1的邊,...
大二資料結構第三次總結
第二章 線性表template linklist linklist t a int n 9.單鏈錶帶表頭尾插法 template linklist linklist t a int n r next null 單鏈表建立完畢,將終端結點的指標域置空 10.單鏈表的遍歷 template linkli...