日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构习题及解析三

發(fā)布時(shí)間:2023/12/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构习题及解析三 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源:我是碼農(nóng),轉(zhuǎn)載請保留出處和鏈接!
本文鏈接:數(shù)據(jù)結(jié)構(gòu)習(xí)題解析三
一、選擇題
1.二叉樹中第5層上的結(jié)點(diǎn)個(gè)數(shù)最多為______
A. 8
B. 15
C. 16
D. 32
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹中各層結(jié)點(diǎn)個(gè)數(shù)的計(jì)算方法。
二叉樹中第i層上的結(jié)點(diǎn)個(gè)數(shù)最多為2i-1。因此,本題參考答案是C。
2.一個(gè)無向連通圖的生成樹是含有該連通圖的全部頂點(diǎn)的_____。
A. 極小連通子圖
B. 極小子圖
C. 極大連通子圖
D. 極大子圖
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是極小連通子圖的概念。
一個(gè)連通圖的生成樹是一個(gè)極小連通子圖,它含有圖中全部頂點(diǎn),但只有足以構(gòu)成一棵樹的n-1條邊。因此,本題參考答案是A。
3.堆的形狀是一棵______。
A. 二叉排序樹
B. 滿二叉樹
C. 完全二叉樹
D. 平衡二叉樹
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是堆與完全二叉樹的關(guān)系。
完全二叉樹:除最后一層外,每一層上的節(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。堆是一種完全二叉樹或者近似完全二叉樹,所以效率極高。因此,本題參考答案是C。
4.在一棵具有n個(gè)結(jié)點(diǎn)的二叉樹中,所有結(jié)點(diǎn)的空子樹個(gè)數(shù)等于_____。
A. n
B. n-1
C. n+1
D. 2n
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹的性質(zhì)。
結(jié)點(diǎn)有n個(gè),于是子樹總數(shù)為2n,所以的邊數(shù)為n-1,因此結(jié)點(diǎn)的空子樹數(shù)量為2n-(n-1)= n+1因此,本題參考答案是C。
5.有向圖的一個(gè)頂點(diǎn)的度為該頂點(diǎn)的___ 。
A. 入度
B. 出度
C. 入度與出度之和
D. (入度+出度)/2
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是有向圖中頂點(diǎn)度的概念。
有向圖的某個(gè)頂點(diǎn)v,把以v為終點(diǎn)的邊的數(shù)目,稱為v的入度;以v為始點(diǎn)的邊的數(shù)目,稱為v的出度;v的度則定義為該頂點(diǎn)的入度和出度之和。因此,本題參考答案是C。
6.對線性表進(jìn)行折半查找時(shí),要求線性表必須

A. 以順序方式存儲
B. 以鏈接方式存儲
C. 以順序方式存儲,且元素按關(guān)鍵字有序排序
D. 以鏈接方式存儲,且元素按關(guān)鍵字有序排序
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是線性表折半查找的條件。
折半查找的前提條件是線性表以順序方式存儲,且元素按關(guān)鍵字有序排序,因此,本題參考答案是C。
7.在一個(gè)有向圖中,所有頂點(diǎn)的度數(shù)之和等于所有弧數(shù)的______倍。
A. 3
B. 2
C. 1
D. 1/2
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是有向圖頂點(diǎn)度數(shù)與弧數(shù)的關(guān)系。
有向圖的某個(gè)頂點(diǎn)v,把以v為終點(diǎn)的邊的數(shù)目,稱為v的入度;以v為始點(diǎn)的邊的數(shù)目,稱為v的出度;v的度則定義為該頂點(diǎn)的入度和出度之和。顯然,在一個(gè)有向圖中,所有頂點(diǎn)的度數(shù)之和等于所有弧數(shù)的2倍。因此,本題參考答案是B。
8.一棵樹的廣義表表示為a(b?, d(e(g(h)), f)),則該二叉樹中度為1的結(jié)點(diǎn)數(shù)為
___。
A. 2
B. 3
C. 4
D. 5
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是廣義表與二叉樹的轉(zhuǎn)換。
二叉樹中的度就是分支的數(shù)目。沒有分叉的二叉樹節(jié)點(diǎn)的度就是0度。如果一個(gè)節(jié)點(diǎn)只有一個(gè)分叉就是1度。兩個(gè)分叉就是2度。該廣義表轉(zhuǎn)換為二叉樹后,度為1的結(jié)點(diǎn)是b,e,g。因此,本題參考答案是B。
9.在一棵深度為h的完全二叉樹中,所含結(jié)點(diǎn)個(gè)數(shù)不大于______。
A. 2h
B. 2h+1
C. 2h -1
D. 2h-1
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是完全二叉樹中結(jié)點(diǎn)的個(gè)數(shù)。
在一棵深度為h的完全二叉樹中,所含結(jié)點(diǎn)個(gè)數(shù)不大于2h -1?;卮鸫祟}可以用實(shí)例來驗(yàn)證,例如當(dāng)h=2時(shí),完全二叉樹最多有3個(gè)結(jié)點(diǎn)。因此,本題參考答案是C。
10.對于順序存儲的有序表(5, 12, 20, 26, 37, 42, 46, 50, 64),為查找元素26,若采用折半查找,需要比較______次才能查找成功。
A. 3
B. 4
C. 5
D. 6
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是折半查找的基本思想。
二分查找又稱折半查找,優(yōu)點(diǎn)是比較次數(shù)少,查找速度快,平均性能好;其缺點(diǎn)是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動而查找頻繁的有序列表。首先,假設(shè)表中元素是按升序排列,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進(jìn)一步查找前一子表,否則進(jìn)一步查找后一子表。重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時(shí)查找不成功。因此,本題參考答案是B。
11.以下哪一個(gè)術(shù)語與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)_____
A. 順序表
B. 靜態(tài)數(shù)組
C. 二叉樹
D. 鏈表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是數(shù)據(jù)結(jié)構(gòu)的基本概念。
二叉樹是每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹的樹結(jié)構(gòu),不是數(shù)據(jù)的存儲結(jié)構(gòu)。因此,本題參考答案是C。
12.對于只在表的首、尾進(jìn)行插入操作的線性表,宜采用的存儲結(jié)構(gòu)為______
A. 順序表
B. 用頭指針表示的單循環(huán)鏈表
C. 用尾指針表示的單循環(huán)鏈表
D. 單鏈表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是循環(huán)鏈表的優(yōu)點(diǎn)。
插入和刪除方便的存儲結(jié)構(gòu)是鏈表,這是因?yàn)殒湵聿迦牒蛣h除時(shí)不需要移動元素就能實(shí)現(xiàn)。只在表的首、尾進(jìn)行插入操作的線性表用尾指針表示的單循環(huán)鏈表最適宜,減少了移動指針的次數(shù)。因此,本題參考答案是C。
13.100個(gè)元素的排序數(shù)組分別進(jìn)行二分查找和順序查找,在查找失敗的情況下,的比較次數(shù)較多。
A. 二分查找
B. 順序查找
C. 一樣多
D. 不一定
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二分查找的性能。
100個(gè)元素的排序數(shù)組分別進(jìn)行二分查找和順序查找,在查找失敗的情況下,順序查找最多比較100次,二分查找最多比較7次。因此,本題參考答案是B。
14.有6個(gè)元素6,5,4,3,2,1的順序進(jìn)棧,問下列哪一個(gè)不是合法的出棧序列

A. 5,4,3,6,1,2
B. 4,5,3,1,2,6
C. 3,4,6,5,2,1
D. 2,3,4,1,5,6
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的應(yīng)用。
棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),5在6之后進(jìn)棧,肯定要在6之前出棧。因此,本題參考答案是C。
15.會引起循環(huán)隊(duì)列隊(duì)頭位置發(fā)生變化的操作是
__。
A. 出隊(duì)列
B. 入隊(duì)列
C. 取隊(duì)首元素
D. 取隊(duì)尾元素
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是循環(huán)隊(duì)列的基本操作。
循環(huán)隊(duì)列的出隊(duì)列操作是在隊(duì)頭進(jìn)行的,會使隊(duì)頭位置發(fā)生變化。因此,本題參考答案是A。
16. 鏈表的結(jié)點(diǎn)類型定義如下:
typedef struct node link;
struct node
{
ListItem element;
link left;
link right;
}p,q,r;
刪除雙鏈表中結(jié)點(diǎn)p(由p指向的結(jié)點(diǎn))的操作是______
A. q=p->left;r=p->right;q->right=r;r->left=q;
B. q=p->right;r=p->left;q->right=r;r->left=q;
C. q=p->left;r=p->right;q->left=r;r->right=q;
D. q=p->left;r=p->right;q->right=r->left;
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是鏈表的操作。
根據(jù)鏈表結(jié)點(diǎn)類型的定義可以看出,該鏈表是一個(gè)雙向鏈表。刪除雙鏈表中結(jié)點(diǎn)p(由p指向的結(jié)點(diǎn))的操作是: q=p->left; r=p->right; q->right=r; r->left=q; 因此,本題參考答案是A。
17.在下列排序算法中,時(shí)間復(fù)雜度為O(nlogn)的是____
A. 冒泡排序
B. 簡單選擇排序
C. 直接插入排序
D. 堆排序
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是堆排序的時(shí)間復(fù)雜度。
在上述算法中,堆排序的時(shí)間復(fù)雜度是O(nlogn),其他算法的時(shí)間復(fù)雜度都是O(n2)。因此,本題參考答案是D。
18.在一棵三元樹中度為3的結(jié)點(diǎn)數(shù)為2個(gè),度為2的結(jié)點(diǎn)數(shù)為1個(gè),度為1的結(jié)點(diǎn)數(shù)為2個(gè),則度為0的結(jié)點(diǎn)數(shù)為____個(gè)。
A. 4
B. 5
C. 6
D. 7
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是三元樹中結(jié)點(diǎn)數(shù)的計(jì)算。
樹中結(jié)點(diǎn)數(shù)等于所有結(jié)點(diǎn)度數(shù)的和加1。所以:2+1+2+X=23+12+21+X0+1,所以X=6。因此,本題參考答案是C。
19.具有10個(gè)葉結(jié)點(diǎn)的二叉樹中有____個(gè)度為2的結(jié)點(diǎn).
A. 8
B. 9
C. 10
D. 11
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹的性質(zhì)。
葉子結(jié)點(diǎn)個(gè)數(shù)=度為2的結(jié)點(diǎn)個(gè)數(shù)+1。因此,本題參考答案是B。
20.在一個(gè)圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊的____倍。
A. 1/2
B. 1
C. 2
D. 4
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是圖的基本性質(zhì)。
在一個(gè)圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊的2倍,這是因?yàn)橐粭l邊一定是連接兩個(gè)頂點(diǎn)。因此,本題參考答案是C。
21.下列數(shù)據(jù)結(jié)構(gòu)具有記憶功能的是____
A. 隊(duì)列
B. 循環(huán)隊(duì)列
C. 棧
D. 順序表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是具有記憶功能的數(shù)據(jù)結(jié)構(gòu)。
由棧的定義可知,棧是一種后進(jìn)先出的線性表,所以棧具有記憶功能。因此,本題參考答案是C。
22.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是____
A. 線性鏈表
B. 棧
C. 循環(huán)鏈表
D. 順序表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的定義。
棧是一種后進(jìn)先出(先進(jìn)后出)的線性表。因此,本題參考答案是B。
23.下列關(guān)于棧的敘述中正確的是____
A. 在棧中只能插入數(shù)據(jù)
B. 在棧中只能刪除數(shù)
C. 棧是先進(jìn)先出的線性表
D. 棧是先進(jìn)后出的線性表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的定義。
棧是一種后進(jìn)先出(先進(jìn)后出)的線性表,可以進(jìn)行插入和刪除數(shù)據(jù)。因此,本題參考答案是D。
24.下列關(guān)于隊(duì)列的敘述中正確的是____
A. 在隊(duì)列中只能插入數(shù)據(jù)
B. 在隊(duì)列中只能刪除數(shù)據(jù)
C. 隊(duì)列是先進(jìn)先出的線性表
D. 隊(duì)列是先進(jìn)后出的線性表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是隊(duì)列的定義。
隊(duì)列是一種先進(jìn)先出的線性表,可以進(jìn)行插入和刪除數(shù)據(jù)。因此,本題參考答案是C。
25.下列敘述中,正確的是____
A. 線性鏈表中的各元素在存儲空間中的位置必須是連續(xù)的
B. 線性鏈表中的表頭元素一定存儲在其他元素的前面
C. 線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D. 線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是線性鏈表的特點(diǎn)。
線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的。因此,本題參考答案是D。
26.下列敘述中正確的是____
A. 線性表是線性結(jié)構(gòu)
B. 棧與隊(duì)列是非線性結(jié)構(gòu)
C. 線性鏈表是非線性結(jié)構(gòu)
D. 二叉樹是線性結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是線性表的性質(zhì)。
線性表是一種線性結(jié)構(gòu)。棧、隊(duì)列和線性鏈表都是線性結(jié)構(gòu)。二叉樹是一種非線性結(jié)構(gòu)。因此,本題參考答案是A。
27.線性表L=(a1,a2,a3,……ai,……an),下列說法正確的是____
A. 每個(gè)元素都有一個(gè)直接前件和直接后件
B. 線性表中至少要有一個(gè)元素
C. 表中諸元素的排列順序必須是由小到大或由大到小
D. 除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是線性表的性質(zhì)。
線性表的特點(diǎn)是:除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件。因此,本題參考答案是D。
28.鏈表不具有的特點(diǎn)是____
A. 不必事先估計(jì)存儲空間
B. 可隨機(jī)訪問任一元素
C. 插入刪除不需要移動元素
D. 所需空間與線性表長度成正比
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是鏈表的特點(diǎn)。
可隨機(jī)訪問任一元素是順序表(例如數(shù)組)的特點(diǎn),不是鏈表的特點(diǎn)。因此,本題參考答案是B。
29.在____中,只要指出表中任何一個(gè)結(jié)點(diǎn)的位置,就可以從它出發(fā)依次訪問到表中其他所有結(jié)點(diǎn)。
A. 線性單鏈表
B. 雙向鏈表
C. 線性鏈表
D. 循環(huán)鏈表
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是循環(huán)鏈表的特點(diǎn)。
循環(huán)鏈表最大的特點(diǎn)是只要指出表中任何一個(gè)結(jié)點(diǎn)的位置,就可以從它出發(fā)依次訪問到表中其他所有結(jié)點(diǎn)。因此,本題參考答案是D。
30.以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的是____
A. 隊(duì)列
B. 線性表
C. 二叉樹
D. 棧
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是非線性數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)。
二叉樹屬于非線性結(jié)構(gòu),其他選項(xiàng)都屬于線性結(jié)構(gòu)。因此,本題參考答案是C。
31.線性表( a1,a2,…,an)以鏈接方式存儲時(shí),訪問第i位置元素的時(shí)間復(fù)雜性為____
A. O(i)
B. O(1)
C. O(n)
D. O(i-1)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是單鏈表的基本操作。
線性表(a1,a2,…,an)以鏈接方式存儲時(shí),該線性表就是一個(gè)單鏈表。單鏈表訪問第i位置元素的時(shí)間復(fù)雜性為O(n),因?yàn)樾枰獜氖自亻_始逐個(gè)向后訪問。因此,本題參考答案是C。
32.在雙向鏈表指針p的結(jié)點(diǎn)前插入一個(gè)指針q的結(jié)點(diǎn)操作是____。
A. p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;
B. p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;
C. q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;
D. q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是雙向鏈表的插入操作。
在雙向鏈表指針p的結(jié)點(diǎn)前插入一個(gè)指針q的結(jié)點(diǎn)操作是: q->Rlink=p; q->Llink=p->Llink; p->Llink->Rlink=q; p->Llink=q; 因此,本題參考答案是C。
33.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是:。
A. p->next=s;s->next=p->next;
B. s->next=p->next;p->next=s;
C. p->next=s;p->next=s->next;
D. p->next=s->next;p->next=s;
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是單鏈表的基本操作。
在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn)的操作是: s->next=p->next; p->next=s; 因此,本題參考答案是B。
34.對于一個(gè)頭指針為head的帶頭結(jié)點(diǎn)的單鏈表,判定該表為空表的條件是

A. headNULL
B. head→nextNULL
C. head→next==head
D. head!=NULL
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是單鏈表的基本操作。
由于單鏈表帶有頭結(jié)點(diǎn),因此從頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)開始存儲元素,所以判定該表為空表的條件是看頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)是否為空。因此,本題參考答案是B。
35.對于順序存儲的線性表,訪問結(jié)點(diǎn)和增加、刪除結(jié)點(diǎn)的時(shí)間復(fù)雜度為____。
A. O(n) O(n)
B. O(n) O(1)
C. O(1) O(n)
D. O(1) O(1)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是線性表操作的性能分析。
對于順序存儲的線性表,例如數(shù)組,訪問結(jié)點(diǎn)時(shí)是隨機(jī)訪問方式,直接利用下標(biāo)就可以定位要訪問哪個(gè)元素,時(shí)間復(fù)雜度為O(1)。增加、刪除結(jié)點(diǎn)時(shí)需要移動大量其他元素,時(shí)間復(fù)雜度為O(n)。因此,本題參考答案是C。
36.執(zhí)行完下列語句段后,i值為:____
int f(int x)
{
return ((x>0) ? x f(x-1):2);
}
int i;
i =f(f(1));
A. 2
B. 4
C. 8
D. 無限遞歸
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是遞歸的使用。
首先計(jì)算f(1)的值,當(dāng)x=1時(shí),函數(shù)返回值是x* f(x-1);即1f(0),而f(0)=2,因此,f(1)的值為2。再計(jì)算f(f(1))=f(2),當(dāng)x=2時(shí),函數(shù)返回值是2f(1)=2*2=4。因此,本題參考答案是B。
37.設(shè)計(jì)一個(gè)判別表達(dá)式中左,右括號是否配對出現(xiàn)的算法,采用____數(shù)據(jù)結(jié)構(gòu)最佳。
A. 線性表的順序存儲結(jié)構(gòu)
B. 隊(duì)列
C. 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)
D. 棧
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的應(yīng)用。
棧的一個(gè)重要應(yīng)用就是判別表達(dá)式中括號是否匹配,基本思想是遇到左括號進(jìn)棧,遇到右括號時(shí)不進(jìn)棧,并彈出棧頂?shù)淖罄ㄌ?#xff0c;如果最終無元素進(jìn)棧,并且棧中也無左括號,則匹配成功。因此,本題參考答案是D。
38.用鏈接方式存儲的隊(duì)列,在進(jìn)行刪除運(yùn)算時(shí)____。
A. 僅修改頭指針
B. 僅修改尾指針
C. 頭、尾指針都要修改
D. 頭、尾指針可能都要修改
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是隊(duì)列的基本操作。
鏈接方式存儲的隊(duì)列,一般都是在隊(duì)頭進(jìn)行刪除運(yùn)算,頭指針需要修改,但當(dāng)刪除隊(duì)列中最后一個(gè)元素時(shí),頭、尾指針都需要修改。因此,本題參考答案是D。
39.關(guān)二叉樹下列說法正確的是____
A. 二叉樹的度為2
B. 一棵二叉樹的度可以小于2
C. 二叉樹中至少有一個(gè)結(jié)點(diǎn)的度為2
D. 二叉樹中任何一個(gè)結(jié)點(diǎn)的度都為2
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹的基本性質(zhì)。
當(dāng)一個(gè)二叉樹為空樹時(shí),此時(shí),它的度小于2。因此,本題參考答案是B。
40.對于有n 個(gè)結(jié)點(diǎn)的二叉樹, 其高度為____
A. nlog2n
B. log2n
C. log2n+1
D. 不確定
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹高度的計(jì)算方法。
對于有n個(gè)結(jié)點(diǎn)的二叉樹,其高度是不確定的,與結(jié)點(diǎn)的排列方式有關(guān),最大為n(每個(gè)節(jié)點(diǎn)就只有一棵子樹的時(shí)候),最小是完全二叉樹的時(shí)候,當(dāng)然也有其他情況可以滿足,最小為log2n,其他情況的都是在這兩種之間,不大于最大不小于最小。因此,本題參考答案是D。
二、填空題
1、二叉樹的遍歷方式有_______、
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹遍歷方式的種類。
二叉樹的遍歷有三種方式,如下:
1)前序遍歷(DLR),首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。簡記根-左-右。
2)中序遍歷(LDR),首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。簡記左-根-右。
3)后序遍歷(LRD),首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。簡記左-右-根。
2、圖的遍歷方式有_______和_______
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是圖的遍歷。
從圖中某一頂點(diǎn)出發(fā),按某種搜索方法訪遍其余頂點(diǎn),且使每一頂點(diǎn)僅被訪問一次。這一過程稱為圖的遍歷。遍歷圖的基本搜索方法有兩種:深度優(yōu)先搜索DFS(Depth First Search)和廣度優(yōu)先搜索BFS(Broad First Search)。這兩種方法都適用于有向圖和無向圖。
3、可以作為算法所需存儲空間的度量。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是算法運(yùn)行所需存儲空間的度量。
空間復(fù)雜度是對一個(gè)算法在運(yùn)行過程中臨時(shí)占用存儲空間大小的量度,記做(n)=O(f(n))。
4、某二叉樹的前序和后序正好相反,則該二叉樹一定是__________二叉樹。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是二叉樹的特性。
由于二叉樹的前序序列是先訪問根結(jié)點(diǎn)再訪問左右子樹得到的,二叉樹的后序序列是先訪問左右子樹最后訪問根結(jié)點(diǎn)得到的,因此,高度等于其結(jié)點(diǎn)數(shù)的二叉樹的前序和后序正好相反。
5、棧的存儲方式有_______和_________兩種。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的存儲方式。
棧既然是一種線性表,所以線性表的順序存儲和鏈?zhǔn)酱鎯Y(jié)構(gòu)同樣適用于棧。
6、開放定址法中,增量序列的取法有
、___________和_________三種。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是開放定址法中增量序列的取法。
開放定址法就是從發(fā)生沖突的那個(gè)單元開始,按照一定的次序,從散列表中查找出一個(gè)空閑的存儲單元,把發(fā)生沖突的待插入元素存入到該單元中的一類處理沖突的方法。增量序列的取法主要有線性探測再散列,二次探測再散列,偽隨機(jī)數(shù)序列三種。
三、解答題
1、設(shè)長度為n的鏈隊(duì)列用單循環(huán)鏈表表示,若只設(shè)頭指針,則入隊(duì),出隊(duì)操作的時(shí)間是什么?如果只設(shè)尾指針呢?
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是單鏈表的基本操作。
隊(duì)列的特點(diǎn)是:先進(jìn)先出;
單鏈的特點(diǎn)是:迭代的時(shí)候只能向前,不能回頭;
在只知道頭指針的情況下:
入隊(duì):首先要遍歷單鏈,找到尾指針,時(shí)間復(fù)雜度O(n);
出隊(duì):直接訪問頭指針即可,時(shí)間復(fù)雜度O(1);
只知道尾指針的情況下,出入隊(duì)時(shí)間均為O(1),因?yàn)槭茄h(huán)鏈表,尾指針?biāo)傅南乱粋€(gè)元素就是頭指針?biāo)冈?#xff0c;所以出隊(duì)時(shí)不需要遍歷整個(gè)隊(duì)列。
2、無向圖G有6個(gè)結(jié)點(diǎn)和9條邊,并依次輸入這9條邊為(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5),試從頂點(diǎn)0出發(fā),分別寫出按深度優(yōu)先搜索法和廣度優(yōu)先搜索法進(jìn)行遍歷的結(jié)點(diǎn)序列。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是無向圖的遍歷方法。
回答此題前,應(yīng)首先根據(jù)9條邊畫出該無向圖,然后根據(jù)無向圖深度優(yōu)先和廣度優(yōu)先搜索法的定義進(jìn)行遍歷,得到結(jié)點(diǎn)序列。 深度優(yōu)先搜索法:0–>2–>3–>4–>5–>1 廣度優(yōu)先搜索法:0–>1–>2–>4–>5–>3
3、簡單描述棧的特點(diǎn)。
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的基本特性。
后進(jìn)先出是棧的最主要特點(diǎn)。
四、算法題
1、設(shè)棧S=(1,2,3,4,5,6,7) ,其中7為棧頂元素。
1)簡述函數(shù)f31中第一個(gè)循環(huán)語句的功能;
2)寫出調(diào)用f31(&s)后的s。

數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題解析解析:本題考點(diǎn)是棧的基本操作。
!就是邏輯非,當(dāng)i=0,!i就是1,當(dāng)i!=0,!i就是0了,i=!i就是給i賦值了(i=!i)!=0)的意思就很明顯了,當(dāng)i=0,i=!i代表的就是1,當(dāng)i!=0,那么表達(dá)式if((i=!i)!=0)為真成立的條件就是i=0。函數(shù)f31中第一個(gè)循環(huán)語句的功能是將棧S中的元素依次出棧,同時(shí)將第奇數(shù)次出棧的元素入棧T,第偶數(shù)次出棧的元素入隊(duì)列Q。調(diào)用f31(&s)后,s = (1,3,5,7,6,4,2),其中2為棧頂元素;

總結(jié)

以上是生活随笔為你收集整理的数据结构习题及解析三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。