MOOC資料結構 第8周測驗

2021-10-09 06:24:01 字數 3227 閱讀 5780

1.樹最適合用來表示( a)。

a.元素之間具有層次關係的資料

b.元素之間無聯絡的資料

c.有序資料元素

d.無序資料元素

2.現有一「遺傳」關係,設x是y的父親,則x可以把他的屬性遺傳給y。表示該遺傳關係最適合的資料結構為( b)。

a.圖b.樹

c.線性表

d.陣列

3.一棵節點個數為n、高度為h的m(m≥3)次樹中,其分支數是(b )。

a.n+h

b.n-1

c.h-1

d.nh

4.若一棵3次樹中有2個度為3的節點,1個度為2的節點,2個度為1的節點,該樹一共有( c)個節點。

a.5b.10

c.11

d.85.設樹t的度為4,其中度為1、2、3、4的節點個數分別為4、2、1、1,則t中的葉子節點個數是( b)。

a.5b.8

c.7d.6

6.有一棵三次樹,其中n3=2,n2=1,n0=6,則該樹的節點個數為(b )。

a.12

b.大於等於9的任意整數

c.9d.10

7.假設每個節點值為單個字元,而一棵樹的後根遍歷序列為abcdefghij,則其根節點值是( b)。

a.ab.j

c.以上都不對

d.b8.一棵度為5、節點個數為n的樹採用孩子鏈儲存結構時,其中空指標域的個數是(b )。

a.5n

b.4n+1

c.4n-1

d.4n

9.有一棵三次樹,其中n3=2,n2=2,n1=1,該樹採用孩子兄弟鏈儲存結構時,則總的指標域數為( b)。

a.36

b.24

c.16

d.10

10.以下關於二叉樹的說法中正確的是(a )

a.二叉樹中不存在度大於2的節點

b.二叉樹就是度為2的樹

c.二叉樹中每個節點的度都為2

d.二叉樹就是度為2有序樹

11.按照二叉樹的定義,具有3個節點的二叉樹有( d)種。

a.3b.4

c.6d.5

12.一棵完全二叉樹中有1000個節點,其中度為1的節點個數是( d)。

a.2b.不確定

c.0d.1

13.一棵滿二叉樹有m個葉子節點和n個節點,其高度為h,則有( c)。

a.h+m=2n

b.n=h+m

c.d.m=h-1

14.設森林f中有4棵樹,第1、2、3、4棵樹的節點個數分別為a、b、c、d,將森林f轉換為二叉樹b,則b中根節點的左子樹上的節點個數是(c )。

a.ab.a+b+c

c.a-1

d.b+c+d //右子樹

15.一棵完全二叉樹中有501個葉子節點,則至少有( c)個節點。

a.1002

b.502

c.1001

d.501

1 .若一棵度為4的樹中度為1、2、3、4的節點個數分別為4、3、2、2,則該樹的總節點個數是多少?

答:n=25。

2 .對於度為m的樹t,其高度為h,則最少的節點個數和最多的節點個數分別是多少?

答:最少的節點個數:h+m-1個。

最多的節點個數:(m^h-1)/(m-1)個。

3 .對於含有n個節點的m次樹,採用孩子鏈儲存結構時,其中空指標域的個數有多少?

答:(m-1)n+1。

4 .任意乙個有n個節點的二叉樹,已知它有m個葉子節點,試證明有(n-2m+1)個度數為1的節點。

答:n0=n2+1;

度之和=分支數;

度之和=n1+2n2;

分支數=n-1;

n=n0+n1+n2;

所以n0=m=n2+1;

n1=n-m-n2=n-m-m+1=(n-2m+1);

5 .為什麼說一棵非空完全二叉樹,一旦節點個數n確定了,其樹形也就確定了。

答:可以計算出高度h以及n0、n1和n2

6 .已知一棵完全二叉樹的第6層(設根為第1層)有8個葉子節點,則該完全二叉樹的節點個數最多是多少?

答:2^6-1個。

7 .假設非空二叉樹採用順序儲存結構,每個節點值為單個字元。設計乙個演算法求編號為i的節點的層次。

答://使用二叉鏈儲存。

#include

#include

using

namespace std;

const

int maxsize=

100;

typedef

struct node

btnode;

void

creatbtnode

(btnode *

&b,char

*str)}}

j++; ch=str[j];}

}int

level

(btnode *b,

char x,

int h)

}int

main()

8 .假設非空二叉樹採用順序儲存結構,每個節點值為單個字元。設計乙個演算法輸出編號為i的節點的所有祖先節點值。

答:

#include

#include

using

namespace std;

const

int maxsize=

100;

typedef

struct node

btnode;

void

creatbtnode

(btnode *

&b,char

*str)}}

j++; ch=str[j];}

}bool

printancestors

(btnode* _root,

char target)

return

false;}

intmain()

//演算法借鑑

武漢大學資料結構MOOC第2周測驗

1單選 2分 線性表是 a.乙個有限序列,可以為空 b.乙個有限序列,不可以為空 c.乙個無限序列,可以為空 d.乙個無限序列,不可以為空 正確答案 a 解析 a 線性表是具有n n 0 個資料元素的有限序列。課本考據 線性表是具有相同特徵的資料元素的乙個有限序列。當 n 0時,表示線性表是乙個空表...

武漢大學資料結構MOOC第5周測驗

1單選 2分 下面關於串的敘述中,正確的是 a.串是一種特殊的線性表 b.串中元素只能是字母 c.空串就是空白串 d.串的長度必須大於零 正確答案 a 解析 a 串是一種特殊的線性表,其元素為單個字元,長度可以為0。課本考據 1 字串簡稱為串,串是由字元元素構成的,其中元素的邏輯關係也是一種線性關係...

測驗8 程式設計方法學 第8周

a 計算思維是邏輯思維的演進 b 計算思維關於設計和構造,可以脫離計算機而存在 c 計算思維是基於計算機的思維模式 d 計算思維從古至今一直存在 正確答案 c 計算思維是基於計算機的思維模式,計算機出現之前,由於沒有快速計算裝置,計算所反映的思維模式主要是數學思維,即通過公式來求解問題。當快速計算裝...