數(shù)據(jù)結(jié)構(gòu)考試試題庫(kù)含答案解析_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)考試試題庫(kù)含答案解析_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)考試試題庫(kù)含答案解析_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)考試試題庫(kù)含答案解析_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)考試試題庫(kù)含答案解析_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)結(jié)構(gòu)習(xí)題集含答案

目錄

目錄1

選擇題2

第一章緒論2

第二章線性表4

第三章棧和隊(duì)列5

第四章串6

第五章數(shù)組和廣義表7

第六章樹和二叉樹7

第七章圖9

第八章查找10

第九章排序II

簡(jiǎn)答題15

第一章緒論15

第二章線性表18

第三章棧和隊(duì)列20

第四章串21

第五章數(shù)組和廣義表22

第六章樹和二叉樹23

第七章圖25

第八章查找26

第九章排序26

編程題28

第一章緒論28

第二章線性表28

第三章棧和隊(duì)列38

第四章串38

第五章數(shù)組和廣義表38

第六章樹和二叉樹38

第七章圖38

第八章查找38

第九章排序44

選擇題

第一章緒論

1.數(shù)據(jù)結(jié)構(gòu)這門學(xué)科是針對(duì)什么問題而產(chǎn)生的?〔A

A、針對(duì)非數(shù)值計(jì)算的程序設(shè)計(jì)問題B、針對(duì)數(shù)值計(jì)算的程序設(shè)計(jì)問題

C、數(shù)值計(jì)算與非數(shù)值計(jì)算的問題都針對(duì)D、兩者都不針對(duì)

2.數(shù)據(jù)結(jié)構(gòu)這門學(xué)科的研究?jī)?nèi)容下面選項(xiàng)最準(zhǔn)確的是〔D

A、研究數(shù)據(jù)對(duì)象和數(shù)據(jù)之間的關(guān)系B、研究數(shù)據(jù)對(duì)象

C、研究數(shù)據(jù)對(duì)象和數(shù)據(jù)的操作D、研究數(shù)據(jù)對(duì)象、數(shù)據(jù)之間的關(guān)系和操作

3.某班級(jí)的學(xué)生成績(jī)表中查得張三同學(xué)的各科成績(jī)記錄,其中數(shù)據(jù)結(jié)構(gòu)考了90

分,那么下面關(guān)于數(shù)據(jù)對(duì)象、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)描述正確的是〔C

A、某班級(jí)的學(xué)生成績(jī)表是數(shù)據(jù)元素,90分是數(shù)據(jù)項(xiàng)

B、某班級(jí)的學(xué)生成績(jī)表是數(shù)據(jù)對(duì)象,90分是數(shù)據(jù)元素

C、某班級(jí)的學(xué)生成績(jī)表是數(shù)據(jù)對(duì)象,90分是數(shù)據(jù)項(xiàng)

D、某班級(jí)的學(xué)生成績(jī)表是數(shù)據(jù)元素,90分是數(shù)據(jù)元素

4.*數(shù)據(jù)結(jié)構(gòu)是指〔A。

A、數(shù)據(jù)元素的組織形式B、數(shù)據(jù)類型

C、數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)D、數(shù)據(jù)定義

5.數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)表示時(shí),物理地址與邏輯地址不相同,稱之為〔C

A、存儲(chǔ)結(jié)構(gòu)B、邏輯結(jié)構(gòu)

C、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、順序存儲(chǔ)結(jié)構(gòu)

6.算法分析的目的是〔C

A、找出數(shù)據(jù)的合理性B、研究算法中的輸入和輸出關(guān)系

C、分析算法效率以求改進(jìn)D、分析算法的易懂性和文檔型性

7.算法分析的主要方法〔A。

A、空間復(fù)雜度和時(shí)間復(fù)雜度B、正確性和簡(jiǎn)明性

C、可讀性和文檔性D、數(shù)據(jù)復(fù)雜性和程序復(fù)雜性

8.計(jì)算機(jī)內(nèi)部處理的基本單元是〔B

A、數(shù)據(jù)B、數(shù)據(jù)元素C、數(shù)據(jù)項(xiàng)D、數(shù)據(jù)庫(kù)

9.數(shù)據(jù)在計(jì)算機(jī)內(nèi)有鏈?zhǔn)胶晚樞騼煞N存儲(chǔ)方式,在存儲(chǔ)空間使用的靈活性上,鏈

式存儲(chǔ)比順序存儲(chǔ)要〔B。

A、低B、高C、相同D、不好說(shuō)

10.算法的時(shí)間復(fù)雜度取決于〔C

A、問題的規(guī)模B、待處理數(shù)據(jù)的初始狀態(tài)

C、問題的規(guī)模和待處理數(shù)據(jù)的初始狀態(tài)D、不好說(shuō)

11.數(shù)據(jù)結(jié)構(gòu)既研究數(shù)據(jù)的邏輯結(jié)構(gòu),又研究物理結(jié)構(gòu),這種觀點(diǎn)〔Bo

A、正確B、錯(cuò)誤

C、前半句對(duì),后半句錯(cuò)D、前半句錯(cuò),后半句對(duì)

12.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成〔C

A、動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B、緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)

C、線性結(jié)構(gòu)和非線性結(jié)構(gòu)D、內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)

13.線性表的順序存儲(chǔ)結(jié)構(gòu)是一種<>的存儲(chǔ)結(jié)構(gòu),線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一

種〔A存儲(chǔ)結(jié)構(gòu)。

A、隨機(jī)存取B、順序存取

C、索引存取D、散列存取

14.*下列程序的時(shí)間復(fù)雜度是〔A

for<i=l;i<=n;++i>{

for<j=l;j<=n;++j>{

c[i][j]=0;

)

)

A、0<n2>B、0<n>C、0<2n>D、0<2n2>

15.*下列程序的空間復(fù)雜度是〔A

for<i=l;i<=n;++i>{

for<j=l;j<=m;++j>{

c[i][j]=0;

)

)

A、0<m*n>B>0<m+n>C、0<m-n>D、0<m/n>

16.*求下列程序段的時(shí)間復(fù)雜度<B>

for<i=l;i<=n;i++>

for<j=l;j<=n;j++>

x=x+l;

A、O<n2>B、O<n>C>O<1>D、O<0>

第二章線性表

1.關(guān)于線性表的說(shuō)法不正確的是?〔D

A、存在唯一的一個(gè)被稱為〃第一個(gè)”的數(shù)據(jù)元素〔開始結(jié)點(diǎn)

B、存在唯一的一個(gè)被稱為"最后一個(gè)"的數(shù)據(jù)元素(終端結(jié)點(diǎn)

C、除第一個(gè)之外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)前驅(qū)

D、除第一個(gè)之外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)后繼

2.關(guān)于順序表的說(shuō)法不正確的是?〔D

A、邏輯關(guān)系上相鄰的兩個(gè)元素在物理存儲(chǔ)位置上也相鄰

B、可以隨機(jī)存取表中任一元素,方便快捷

C、在線性表中插入某一元素時(shí),往往需要移動(dòng)大量元素

D、在線性表中刪除某一元素時(shí),無(wú)需移動(dòng)大量元素

3.當(dāng)線性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,但要求以最快

的速度存取線性表中的元素時(shí),應(yīng)采用仕么存儲(chǔ)結(jié)構(gòu)?〔A

A、順序表B、單鏈表C、循環(huán)鏈表D、雙鏈表

4.在一個(gè)長(zhǎng)度為n的順序表中第i個(gè)元素〔l〈=i〈=n之前插入一個(gè)元素時(shí),需向

后移動(dòng)多少個(gè)元素。〔C

A、n-1B、n-iC、n-i+1D、n-i-l

5.在單鏈表中設(shè)置頭結(jié)點(diǎn)的作用是〈>o

A、單鏈表定義而已B、指定表的起始位置

C、為雙向鏈表做準(zhǔn)備D、為循環(huán)鏈表做準(zhǔn)備

6.根據(jù)線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每一個(gè)結(jié)點(diǎn)包含的指針數(shù),將線性鏈表分成〔C

A、單鏈表與循環(huán)鏈表B、單鏈表與十字鏈表

C、單鏈表與雙鏈表D、循環(huán)鏈表與多鏈表

7.鏈接存儲(chǔ)的特點(diǎn)是利用仕么來(lái)表示數(shù)據(jù)元素之間的邏輯關(guān)系〔A

A、引用B、串聯(lián)C、掛接D、指派

8.已知指針p指向單鏈表L中的某結(jié)點(diǎn),則刪除其后繼結(jié)點(diǎn)的語(yǔ)句是〔D

9.*在單鏈表L中,指針p所指結(jié)點(diǎn)有后繼結(jié)點(diǎn)的條件是〔B

A>p=p.nextB、p.next!=null

10.*在單鏈表P結(jié)點(diǎn)之后插入s結(jié)點(diǎn)的操作是〔C

A、p.next=s;s.next=p.next;B、s.next=p.next;p.next=p.next,next;

C、s.next=p.next;p.next=s;D、s.next=p;p.next=s;

第三章棧和隊(duì)列

1.棧、隊(duì)列通常采用兩種存儲(chǔ)結(jié)構(gòu),它們是〈B>

A、散列方式和索引方式B、順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

C、鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D、線性和非線性存儲(chǔ)結(jié)構(gòu)

2.一個(gè)棧入棧序列是a,b,c,d,則棧輸出序列不可能是〈C>

A、d,c,b,aB、c,d,b,aC、d,c,a,bD、a,b,c,d

3.判斷順序?!沧疃嘟Y(jié)點(diǎn)數(shù)為m為棧滿的條件是〔D

A、top=0B、top!=mC、top!=0D、top==m

4.棧存取數(shù)據(jù)原則〔或棧特點(diǎn)是〔B

A、后進(jìn)后出B、后進(jìn)先出C、先進(jìn)先出D、隨意進(jìn)出

5.*經(jīng)過以下棧運(yùn)算后,x的值是〔A

InitStack<s>;

Push<s,d>;

Push<s,e>;

Pop<szx>;

Pop<szx>;

GetTop<s,x>;

A、dB、eC>xD、s

6.一個(gè)隊(duì)列的進(jìn)隊(duì)序列為:a,b,c,d,則出隊(duì)序列是:〈A〉

A、a,b,c,dB、d,c,b,a

C、a,d,c,bD、c,b,d,a

7.循環(huán)隊(duì)列為空隊(duì)列的條件是:〔D

A、Q.front=0B、Q.(rear+l>%MaxSize==Q.front

C、Q.rear=0D>Q.rear==Q.front

8.在存儲(chǔ)結(jié)構(gòu)上,如果用帶頭節(jié)點(diǎn)單鏈表實(shí)現(xiàn)隊(duì)列〔假定front和rear分別為

隊(duì)首和隊(duì)尾指針,則刪除一個(gè)結(jié)點(diǎn)的操作為〔A。

A、front.next=front.next,nextB、rear=rear.next

C、rear=front.nextD、front=front,next

9.棧和隊(duì)列共同點(diǎn)是〔C

A、先進(jìn)后出B、先進(jìn)先出

C、允許在端點(diǎn)處進(jìn)行操作線性表D、無(wú)共同點(diǎn)

10.插入和刪除只能在一端進(jìn)行的線性表是〔B

A、循環(huán)隊(duì)列B、棧

C、隊(duì)列D、循環(huán)棧

11.插入和刪除分別在兩端端進(jìn)行的線性表是〔C

A、循環(huán)隊(duì)列B、棧

C、隊(duì)列D、循環(huán)棧

12.循環(huán)隊(duì)列為滿隊(duì)列的條件是:〔B

A、Q.front=0B、Q.(rear+1>%MaxSize==Q.front

C、Q.rear=0D、Q.rear==Q.front

第四章串

1.關(guān)于串的敘述,錯(cuò)誤的是:

A.串是字符有限序列B.空串是由空格構(gòu)成的串

C.模式匹配是串的重要運(yùn)算D.串有用順序、鏈?zhǔn)絻煞N存儲(chǔ)方式

2.串長(zhǎng)度是指〔B

A.串所含不同字母數(shù)目B.串所含字符數(shù)目

C.串所含不同字符數(shù)目D.串所含非空格字符數(shù)目

3.*若串S="database”,其子串?dāng)?shù)目是〔B。

A.16B.37C.8D.36

4.設(shè)串S1是串S子串,則求S1在S中定位運(yùn)算稱為〔B

A.求子串B.串匹配C.聯(lián)接D.求串長(zhǎng)

5.設(shè)有串sl="welcometozdsoftcolleage!”和s2="so”,那么s2在si中的

索引位置是(C

A.12B.14C.13D.10

6.*若串S="software”,其子串的數(shù)目是〔B。

A.8B.37C.36D.9

第五章數(shù)組和廣義表

第六章樹和二叉樹

1.假設(shè)在一棵二叉樹中,雙分支結(jié)點(diǎn)數(shù)為15,單分支結(jié)點(diǎn)數(shù)為30個(gè),則葉子結(jié)

點(diǎn)數(shù)為〔B個(gè)。

A.15B.16C.17D.47

2.假定一棵三叉樹的結(jié)點(diǎn)數(shù)為50,則它的最小高度為〔Co

A.3B.4C.5D.6

3.在一棵二叉樹上第4層的結(jié)點(diǎn)數(shù)最多為〔D。

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

4.用順序存儲(chǔ)的方法將完全二叉樹中的所有結(jié)點(diǎn)逐層存放在數(shù)組中結(jié)

點(diǎn)R[i]若有左孩子,其左孩子的編號(hào)為結(jié)點(diǎn)〔Bo

A.R[2i+1]B.R[2i]C.R[i/2]D.R[2i-1]

5.設(shè)n,m為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷序列中n在m前的條件是

〔Bo

A.n在m右方B.nm

C.n是m的祖先D.n是m的子孫

6.下面敘述正確的是〔Do

A.二叉樹是特殊的樹

B.二叉樹等價(jià)于度為2的樹

C.完全二叉樹必為滿二叉樹

D.二叉樹的左右子樹有次序之分

7.現(xiàn)有一深度為5的二叉樹,請(qǐng)問其最多有〔D個(gè)結(jié)點(diǎn)。

A.32B.5C.30D.31

8.現(xiàn)有一深度為4的二叉樹,請(qǐng)問其最多有〔A個(gè)結(jié)點(diǎn)。

A.15B.16C.17D.6

9.在一棵二叉排序樹上按〔B遍歷得到的結(jié)點(diǎn)序列是一個(gè)有序序列。

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

10.在一棵二叉樹中,度為0的結(jié)點(diǎn)數(shù)為no,度為2的結(jié)點(diǎn)數(shù)為ri2,則no=〔C

A.n+1B.n+2C.n2+1D.2n+1

11.由三個(gè)結(jié)點(diǎn)構(gòu)成的二叉樹,共有〔B種不同的形態(tài)。

A.4B.5C.6D.7

12.一棵含有n個(gè)結(jié)點(diǎn)的樹,〔A形態(tài)達(dá)到最大深度。

A.單支樹B.二叉樹C.三叉樹D.n叉樹

13.不含任何結(jié)點(diǎn)的空樹〔Co

A.是一棵樹;B.是一棵二叉樹;

C.是一棵樹也是一棵二叉樹;D.既不是樹也不是二叉樹

14.二叉樹是非線性數(shù)據(jù)結(jié)構(gòu),所以<C>o

A.它不能用順序存儲(chǔ)結(jié)構(gòu)存儲(chǔ);B.它不能用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ);

C.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)都能存儲(chǔ);

D.順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)都不能使用

15.具有n<n>0>個(gè)結(jié)點(diǎn)的完全二叉樹的深度為<C>。

A.log2<n>B.Iog2<n>C.[Iog2<n>]+1D.Iog2<n>+1

16.在一棵三元樹中度為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ù)為〔D個(gè)。

A.4B.5C.6D.7

17.有關(guān)二叉樹下列說(shuō)法正確的是〔B

A.二叉樹的度為2B.一棵二叉樹的度可以小于2

C.二叉樹中至少有一個(gè)結(jié)點(diǎn)的度為2D.二叉樹中任何一個(gè)結(jié)點(diǎn)的度都為2

18.在完全二叉樹中,若一個(gè)結(jié)點(diǎn)是葉結(jié)點(diǎn),則它沒〔C。

A.左子結(jié)點(diǎn)B.右子結(jié)點(diǎn)

C.左子結(jié)點(diǎn)和右子結(jié)點(diǎn)D.左子結(jié)點(diǎn),右子結(jié)點(diǎn)和兄弟結(jié)點(diǎn)

19.在下列情況中,可稱為二叉樹的是〔B

A.每個(gè)結(jié)點(diǎn)至多有兩棵子樹的樹B.哈夫曼樹

C.每個(gè)結(jié)點(diǎn)至多有兩棵子樹的有序樹D.每個(gè)結(jié)點(diǎn)只有一棵右子樹

第七章圖

1.圖的深度優(yōu)先遍歷類似于二叉樹的〔Ao

A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷

2.已知一個(gè)圖如圖所示,若從頂點(diǎn)a出發(fā)按深度優(yōu)先遍歷,則可能得到的一種頂

點(diǎn)序列為〔C

A.abecdfB.acfebdC.aebcfdD.aedfcb

3.若從無(wú)向圖的任意一個(gè)頂點(diǎn)出發(fā)進(jìn)行一次深度優(yōu)先搜索可以訪問圖中所有

的頂點(diǎn),則該圖一定是〔B圖。

A.非連通B.連通C.強(qiáng)連通D.有向

4.在一個(gè)圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的〔C倍。

A1/2BlC2D3

5.在一個(gè)有向圖中,所有頂點(diǎn)的入度之和等于所有頂點(diǎn)出度之和的〔B倍。

A1/2BlC2D3

6.一個(gè)有N個(gè)頂點(diǎn)的有向圖最多有〔B條邊。

ANBN<N-1>CN<n-l>/2D2N

7.具有4個(gè)頂點(diǎn)的無(wú)向完全圖有〔A條邊。

A6B12C18D20

8.具有6個(gè)頂點(diǎn)的無(wú)向圖至少有A條邊才能確保是一個(gè)連通圖。

A5B6C7D8

9.對(duì)于一個(gè)具有N個(gè)頂點(diǎn)的無(wú)向圖,若采用鄰接矩陣表示,則該矩陣大小是〔D

ANB<N-1>2CN-lDN*N

10.一個(gè)具有N個(gè)頂點(diǎn)的無(wú)向圖中,要連通全部頂點(diǎn)至少要〔C條邊

ANBN+lCN-lDN/2

11.*已知圖的鄰接矩陣如圖所示,則從頂點(diǎn)0出發(fā)按深度優(yōu)先遍歷的結(jié)果是

0111101

〔c1001001

1000100

1100110

1011010

0001101

1100010

A.0243156B.0136542C.0134256D.0361542

12.已知圖的鄰接表下圖所示,則從頂點(diǎn)0出發(fā)按廣度優(yōu)先遍歷的結(jié)果是〔

按深度優(yōu)先遍歷的結(jié)果是〔D。

A.0132B.0231C.0321D.0123

13.已知圖的鄰接表下圖所示,則從頂點(diǎn)0出發(fā)按廣度優(yōu)先遍歷的結(jié)果是〔,

按深度優(yōu)先遍歷的結(jié)果是〔。

A.0132B.0231C.0321D.0123

14.當(dāng)在一個(gè)有序的順序表上查找一個(gè)數(shù)據(jù)時(shí),既可用折半查找,也可用順序查找,

但前者比后者的查找速度〔CO

A.必定快B.不一定

C.在大部分情況下要快D.取決于表遞增還是遞減

15.折半查找有序表C4,6,10,12,20,30,50,70,88,100o若查找表中元素58,則它

將依次與表中〔A比較大小,查找結(jié)果是失敗。

A.20,70,30,50B.30,88,70,50

C.20,50D.30,88,50

第八章查找

1.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為〔B的線性表。

A.散列存儲(chǔ)B.順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)

C.壓縮存儲(chǔ)D.索引存儲(chǔ)

2.在查找過程中,若同時(shí)還要增、刪工作,這種查找稱為〔Bo

A、靜態(tài)查找B、動(dòng)態(tài)查找C、內(nèi)查找D、外查找

3.索引順序表的特點(diǎn)是順序表中的數(shù)據(jù)〔Ao

A、有序B、無(wú)序C、塊間有序D、散列

4.采用順序查找方法查找長(zhǎng)度為n的線性表時(shí),每個(gè)元素的平均查找長(zhǎng)度為〔C

A、nB>n/2C><n+l>/2D><n-l>/2

5.*將10個(gè)元素散列到1000000個(gè)單元的哈希表,則〔C產(chǎn)生沖突。

A、一定會(huì)B、一定不會(huì)C、仍可能會(huì)D、以上都不對(duì)

6.*散列表的地址區(qū)間為0?16,散列函數(shù)H<k>=k%17,采用線性探測(cè)法解決地

址沖突,將關(guān)鍵字26、25、72、38、1、18、59依次存儲(chǔ)到散列表中。元素

59存放在散列表中的地址為〔A

A、8B、9C、10D、11

7.設(shè)有序表的關(guān)鍵字序列為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)采用二

分查找法查找值為82的節(jié)點(diǎn)時(shí),經(jīng)〔C次比較后查找成功。

A、IB、2C、3D、4

8.設(shè)有100個(gè)元素,用折半查找法進(jìn)行查找時(shí),最大、最小比較次數(shù)分別時(shí)〔A

A、7,IB,6,IC、5,ID、8,1

第九章排序

1.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用冒泡〈起泡〉排序方

法,初始序列在〔A情況下,與排序碼值總比較次數(shù)最少。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

2.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用冒泡〈起泡〉排序方

法,在〔B情況下,與排序碼值總比較次數(shù)最多。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

3.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用直接插入排序方法,

初始序列在〔A情況下,與排序碼值總比較次數(shù)最少。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

4.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用直接插入排序方法,

初始序列在〔B情況下,與排序碼值總比較次數(shù)最多。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

5.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用快速排序方法在

〔C情況下,與排序碼值總比較次數(shù)最少。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

6.對(duì)n個(gè)不同的記錄按排序碼值從小到大次序重新排列,用快速排序方法,在

〔A情況下與排序碼值總比較次數(shù)最多。

A.按排序碼值從小到大排列B.按排序碼值從大到小排列

C.隨機(jī)排列〈完全無(wú)序〉D.基本按排序碼值升序排列

7.用冒泡排序方法對(duì)n個(gè)記錄按排序碼值從小到大排序時(shí),當(dāng)初始序列是按排

序碼值從大到小排列時(shí),與碼值總比較次數(shù)是〔D。

A.n-lB.nC.n+1D.n<n-l>/2

8.下列排序方法中,與排序碼值總比較次數(shù)與待排序記錄的初始序列排列狀態(tài)

無(wú)關(guān)的是vD>o

A.直接插入排序B.冒泡排序C.快速排序D.直接選擇排序

9.將6個(gè)不同的整數(shù)進(jìn)行排序,至少需要比較vA>次。

A.5B.6C.15D.21

10.將6個(gè)不同的整數(shù)進(jìn)行排序,至多需要比較vC>次。

A.5B.6C.15D.21

11.*若需要時(shí)間復(fù)雜度在O<nlog2n>內(nèi),對(duì)整數(shù)數(shù)組進(jìn)行排序,且要求排序方法是

穩(wěn)定的,則可選擇的排序方法是<B>。

A.快速排序B.歸并排序C.堆排序D.直接插入排序

12.當(dāng)待排序的整數(shù)是有序序列時(shí),采用<B>方法比較好,其時(shí)間復(fù)雜度為

O<n>o

A.快速排序B.冒泡排序C.歸并排序D.直接選擇排序

13.當(dāng)待排序的整數(shù)是有序序歹時(shí),采用〔A方法比較差,達(dá)到最壞情況下時(shí)間

2

復(fù)雜度為O<n>o

A.快速排序B.冒泡排序C.歸并排序D.直接選擇排序

14.當(dāng)待排序的整數(shù)是有序序列時(shí),無(wú)論待排序序列排列是否有序,采用〔D方

法的時(shí)間復(fù)雜度都是0<產(chǎn)>。

A.快速排序B.冒泡排序C.歸并排序D.直接選擇排序

15.*堆是一種<B>排序。

A.插入B.選擇C.交換D.歸并

16.*若一組記錄的排序碼值序列為{40,80,50,30,60,70},利用堆排序方法進(jìn)行排

序,初建的大頂堆是<D>o

A.80,40,50,30,60,70B.80,70,60,50,40,30

C.80,70,50,40,30,60D.80,60,70,30,40,50

17.若一組記錄的排序碼值序列為{50,80,30,40,70,60}利用快速排序方法以第

一個(gè)記錄為基準(zhǔn),得到一趟快速排序的結(jié)果為〔Bo

A.30,40,50,60,70,80B.40,30,50,80,70,60

C.50,30,40,70,60,80D.40,50,30,70,60,80

18.*下列幾種排序方法中要求輔助空間最大的是〔C。

A.堆排序B.直接選擇排序C.歸并排序D.快速排序

19.已知A[m]中每個(gè)數(shù)組元素距其最終位置不遠(yuǎn),采用下列<A>排序方法最

節(jié)省時(shí)間。

A.直接插入B.堆C.快速D.直接選擇

20.*設(shè)有10000個(gè)互不相等的無(wú)序整數(shù),若僅要求找出其中前10個(gè)最大整數(shù),最

好采用〔B排序方法。

A.歸并B.堆C.快速D.直接選擇

21.*在下列排序方法中不需要對(duì)排序碼值進(jìn)行比較就能進(jìn)行排序的是〔A。

A:基數(shù)排序B.快速排序C.直接插入排序D.堆排序

22.*給定排序碼值序列為下力/。上八1。0舊},對(duì)其按字母的字典序列的次序

進(jìn)行排列,希爾<Shell>排序的第一趟<d1=5>結(jié)果應(yīng)為〔Do

A.{B,F,C,J,A,E,D,I.C,H)

B.{C,B,D,A,E,F,I,C,J,H}

C.{B,F,C,E,A,I,D,C,H,J}

D.{A,B,D,C,E,F,I,J,C,H}

23.給定排序碼值序列為化舊/?!辍?1。。1~1},對(duì)其按字母的字典序列的次序進(jìn)

行排列,冒泡排序〈大數(shù)下沉》的第一趟排序結(jié)果應(yīng)為〔Co

A.{B,F,C,J,A,E,D,I,C,H}

B.{C,B,D,A,E,F,I,C,J,H}

C.{B,F,C,E,A,I,D,C,H,J}

D.{A,B,D,C,E,F,I,J,C,H}

24.給定排序碼值序列為伊力小。£分,1。。E,對(duì)其按字母的字典序列的次序進(jìn)

行排列,快速排序的第一趟排序結(jié)果為〔B。

A.{B,F,C,J,A,E,D,I,C,H)

B.{C,B,D,A,E,F,I*C,J,H}

C.{B,F,C,E,A,I,D,C,H,J}

D.{A,B,D,C,E,F,I,J,C,H}

25.*給定排序碼值序列為下力/。工人,1。G巾,對(duì)其按字母的字典序列的次序

進(jìn)行排列,二路歸并排序的第一趟排序結(jié)果是〔Ao

A.{B,F,C,J,A,E,D,I,C,H)

B.{C,B,D,A,E,F,I,C,J,H}

C.{B,F,C,E,A,I,D,C,H,J}

D.{A,B,D,C,E,F,I,J,C,H}

簡(jiǎn)答題

第一章緒論

1.請(qǐng)分別給出數(shù)據(jù)、數(shù)據(jù)對(duì)象、數(shù)據(jù)元素、數(shù)據(jù)項(xiàng)的含義,并說(shuō)明四者的關(guān)系。

數(shù)據(jù)〈Data〉:是對(duì)信息的一種符號(hào)表示。在計(jì)算機(jī)科學(xué)中是指所有能輸入到計(jì)算機(jī)

中并能被計(jì)算機(jī)程序處理的符號(hào)的總稱。〔一個(gè)得分點(diǎn)

數(shù)據(jù)元素〈DataElement》:是數(shù)據(jù)的基本單位,在計(jì)算機(jī)程序中通常作為一個(gè)整體

進(jìn)行考慮和處理,相當(dāng)于表中的一條記錄。(一個(gè)得分點(diǎn)

數(shù)據(jù)項(xiàng):相當(dāng)于記錄的"域",是數(shù)據(jù)的不可分割的最小單位,如學(xué)號(hào)〔一個(gè)得分點(diǎn)

數(shù)據(jù)對(duì)象:性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集.例如:同一個(gè)班的所有

學(xué)生記錄集合。(一個(gè)得分點(diǎn)

關(guān)系:包含關(guān)系:數(shù)據(jù)泛指所有。數(shù)據(jù)對(duì)象是數(shù)據(jù)的一個(gè)子集,由數(shù)據(jù)元素組成,數(shù)

據(jù)元素是由數(shù)據(jù)項(xiàng)組成?!惨粋€(gè)得分點(diǎn)

評(píng)分標(biāo)準(zhǔn),總共5個(gè)得分點(diǎn),每段話一個(gè)得分。

2.請(qǐng)給出數(shù)據(jù)的邏輯結(jié)構(gòu)的含義,并舉例說(shuō)明數(shù)據(jù)的邏輯結(jié)構(gòu)通常有哪些。

數(shù)據(jù)的邏輯結(jié)構(gòu):指數(shù)據(jù)元素之間的邏輯關(guān)系。即用自然語(yǔ)言描述數(shù)據(jù),它與數(shù)據(jù)的存

儲(chǔ)無(wú)關(guān),是獨(dú)立于計(jì)算機(jī)的,邏輯結(jié)構(gòu)有四種。(一個(gè)得分點(diǎn)

集合結(jié)構(gòu):僅同屬一個(gè)集合〔結(jié)構(gòu)名字0.5個(gè)得分點(diǎn)、舉例0.5得分點(diǎn)

線性結(jié)構(gòu):一對(duì)一(1:1>(結(jié)構(gòu)名字0.5個(gè)得分點(diǎn)、舉例0.5得分點(diǎn)

樹結(jié)構(gòu):一對(duì)多(l:n>〔結(jié)構(gòu)名字0.5個(gè)得分點(diǎn)、舉例0.5得分點(diǎn)

圖結(jié)構(gòu):多對(duì)多<m:n>〔結(jié)構(gòu)名字0.5個(gè)得分點(diǎn)、舉例0.5得分點(diǎn)

評(píng)分標(biāo)準(zhǔn):每段話一個(gè)得分點(diǎn),總共5個(gè)得分點(diǎn)。

什么是數(shù)據(jù)的物理結(jié)構(gòu)?有哪些物理結(jié)構(gòu)?數(shù)據(jù)的物理結(jié)構(gòu)與邏輯結(jié)構(gòu)有什么區(qū)別與

聯(lián)系?

數(shù)據(jù)的物理結(jié)構(gòu):物理結(jié)構(gòu)亦稱存儲(chǔ)結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)器內(nèi)的表示

(或映像。它依賴于計(jì)算機(jī)。(一個(gè)得分點(diǎn)

存儲(chǔ)結(jié)構(gòu)可分為4大類:順序、鏈?zhǔn)?、索引、散列。(?個(gè)得分點(diǎn),一個(gè)0.5得分點(diǎn)

區(qū)別:數(shù)據(jù)的邏輯結(jié)構(gòu)屬于用戶視圖,是面向問題的,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)屬于具體實(shí)現(xiàn)的視

圖,是面向計(jì)算機(jī)的。(一個(gè)得分點(diǎn)

聯(lián)系:一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以用多種存儲(chǔ)結(jié)構(gòu)來(lái)存儲(chǔ),而采用不同的存儲(chǔ)結(jié)構(gòu)其處理

的效率往往不同。(一個(gè)得分點(diǎn)

評(píng)分標(biāo)準(zhǔn):共5個(gè)得分點(diǎn),按照每段話各自標(biāo)注的得分點(diǎn)進(jìn)行評(píng)分。

3.求兩個(gè)正整數(shù)m,n中的最大數(shù)MAX的算法

[1若m>n貝!]max=m

[2若m<=n貝!|max=n

請(qǐng)根據(jù)上述算法解釋一下算法的組成要素有哪些,分別是什么。

算法由操作、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)3要素組成

操作包含:算術(shù)運(yùn)算、關(guān)系比較、邏輯運(yùn)算、數(shù)據(jù)傳送(輸入、輸出、賦值〔一個(gè)得分

點(diǎn)

例子中有關(guān)系比較和賦值計(jì)算的操作?!惨粋€(gè)得分點(diǎn)

控制結(jié)構(gòu)包含:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(一個(gè)得分點(diǎn)

例子中有選擇結(jié)構(gòu)(一個(gè)得分點(diǎn)

數(shù)據(jù)結(jié)構(gòu):算法操作的對(duì)象是數(shù)據(jù),數(shù)據(jù)間的邏輯關(guān)系、數(shù)據(jù)的存儲(chǔ)方式及處理方式就

是數(shù)據(jù)結(jié)構(gòu)。〔一個(gè)得分點(diǎn)

本例是數(shù)值問題,涉及到兩個(gè)正整數(shù),因此使用基本的整數(shù)類型就可以解決問題。(一個(gè)得

分點(diǎn)

評(píng)分標(biāo)準(zhǔn):本題共6個(gè)得分點(diǎn),每段話一個(gè)得分點(diǎn)。

4.簡(jiǎn)述算法的基本性質(zhì)

1輸入:0個(gè)或多個(gè)輸入

2輸出:1個(gè)或多個(gè)輸出

3有窮性:算法必須在有限步內(nèi)結(jié)束

4確定性:組成算法的操作必須清晰無(wú)二義性

5可行性:組成算法的操作必須能夠在計(jì)算機(jī)上實(shí)現(xiàn)

評(píng)分標(biāo)準(zhǔn),本題共5個(gè)得分點(diǎn),每個(gè)要點(diǎn)一分。

5.簡(jiǎn)述算法的設(shè)計(jì)要求

1、正確性(correctness

2、可讀性〔readability

3、健壯性(robustness

4、通用性(generality

5、效率與存儲(chǔ)的要求(執(zhí)行算法所耗費(fèi)的存儲(chǔ)空間、執(zhí)行算法所耗費(fèi)的時(shí)間

評(píng)分標(biāo)準(zhǔn),本題共5個(gè)得分點(diǎn),每個(gè)要點(diǎn)一分。

6.評(píng)價(jià)算法好壞的3條主要標(biāo)準(zhǔn)

1算法實(shí)現(xiàn)所耗費(fèi)的時(shí)間。

2算法實(shí)現(xiàn)所耗費(fèi)的存儲(chǔ)空間,其中主要考慮輔助存儲(chǔ)空間。

3算法應(yīng)易于理解、易于編碼、易于調(diào)試等。

評(píng)分標(biāo)準(zhǔn),本題共3個(gè)得分點(diǎn),每個(gè)要點(diǎn)一分。

7.請(qǐng)簡(jiǎn)述數(shù)據(jù)結(jié)構(gòu)所研究的三種基本結(jié)構(gòu),以及數(shù)據(jù)元素間的關(guān)系。

線性結(jié)構(gòu):數(shù)據(jù)元素之間一對(duì)一的關(guān)系。[2分

樹形結(jié)構(gòu):數(shù)據(jù)元素之間一對(duì)多的關(guān)系。[1.5分

圖形結(jié)構(gòu):數(shù)據(jù)元素之間多對(duì)多的關(guān)系。[1.5分

8.請(qǐng)問算法的分析和評(píng)價(jià)的兩個(gè)標(biāo)準(zhǔn),以及各自作用。

時(shí)間復(fù)雜度:評(píng)估算法運(yùn)行所需時(shí)間。[1.5+1分

空間復(fù)雜度:評(píng)估算法運(yùn)行時(shí)所需最大存儲(chǔ)空間?!?.5+1分

9.請(qǐng)說(shuō)出三種邏輯數(shù)據(jù)結(jié)構(gòu),以及他們的特點(diǎn)。〔5分

門線性結(jié)構(gòu):數(shù)據(jù)元素只有一個(gè)前驅(qū)數(shù)據(jù)元素和一個(gè)后繼數(shù)據(jù)元素。[2分

(2樹結(jié)構(gòu):每個(gè)數(shù)據(jù)元素只有一個(gè)前驅(qū)數(shù)據(jù)元素,可有零個(gè)或若干個(gè)后繼數(shù)據(jù)元素。(1.5

(3圖結(jié)構(gòu):每個(gè)數(shù)據(jù)元素可有零個(gè)或若干個(gè)前驅(qū)數(shù)據(jù)元素,零個(gè)或若干個(gè)后繼數(shù)據(jù)元

素。(1.5分

10.評(píng)價(jià)算法的主要標(biāo)準(zhǔn)是什么?

(1算法實(shí)現(xiàn)所耗費(fèi)的時(shí)間〔2分

(2算法實(shí)現(xiàn)所耗費(fèi)的存儲(chǔ)空間,其中主要考慮輔助存儲(chǔ)空間。(2分

13算法應(yīng)易于理解、易于編碼、易于調(diào)試。門分

11.請(qǐng)說(shuō)出三種邏輯數(shù)據(jù)結(jié)構(gòu),并分別畫圖表示它們。

ia,2分,b,c各1.5分

12.算法的基本性質(zhì)有哪些?并簡(jiǎn)述每個(gè)特性。<5分〉

(1有窮性........11分

(2確定性........11分

(3可行性一一....〔1分

(4輸入性........11分

(5輸出性——....[1分

13.通常從那幾個(gè)方面來(lái)評(píng)價(jià)算法的質(zhì)量?<5分〉

通常從四個(gè)方面評(píng)價(jià)算法的質(zhì)量:正確性、可讀性、健壯性和高效性。(少一個(gè)扣1分

14.請(qǐng)描述線性數(shù)據(jù)結(jié)構(gòu)的兩種存儲(chǔ)方式,并說(shuō)出其各有什么特點(diǎn)。

順序存儲(chǔ):連續(xù)存儲(chǔ),易于定位,不易于插入和刪除。11+1.5分

鏈?zhǔn)酱鎯?chǔ):非連續(xù)存儲(chǔ),不易于定位,易于插入和刪除。11+1.5分

15.請(qǐng)問算法的分析和評(píng)價(jià)的兩種方法,它們關(guān)注點(diǎn)各有什么不同?〔簡(jiǎn)單

空間效率:關(guān)注算法對(duì)內(nèi)存的占用度。[1+1.5分

時(shí)間效率:關(guān)注算法的運(yùn)算速度。U+L5分

第二章線性表

1.請(qǐng)問如果要插入一個(gè)數(shù)據(jù)到一個(gè)線性表中,順序表和鏈表哪個(gè)的效率高?為

什么?

鏈表的效率高(2分,因?yàn)轫樞虮硪苿?dòng)插入位置后的每一個(gè)元素的位置給新數(shù)據(jù)騰位置

(1.5分。鏈表只需要將前一個(gè)數(shù)據(jù)的指針指向新數(shù)據(jù)并將新數(shù)據(jù)的指針指向后一個(gè)數(shù)

據(jù)即可(1.5分。

2.線性表有哪些特點(diǎn)?

1除第一個(gè)和最后一個(gè)數(shù)據(jù)元素外,每個(gè)數(shù)據(jù)元素只有一個(gè)前驅(qū)數(shù)據(jù)元素和一個(gè)后繼數(shù)

據(jù)元素;[2分

2第一個(gè)數(shù)據(jù)元素沒有前驅(qū)數(shù)據(jù)元素;[1.5分

3最后一個(gè)數(shù)據(jù)元素沒有后繼數(shù)據(jù)元素。(1.5分

3.順序存儲(chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn)有哪些?〈中等〉

順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn):[2.5分

存儲(chǔ)空間連續(xù)

邏輯相鄰,物理相鄰

可隨機(jī)存取任一元素

缺點(diǎn):〔2.5分

插入、刪除操作需要移動(dòng)大量的元素

預(yù)先分配空間需按最大空間分配,利用不充分

表容量難以擴(kuò)充

4.單鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)缺點(diǎn)有哪些?〈中等〉

單鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的優(yōu)點(diǎn):(2.5分

不需預(yù)先分配空間,空間利用充分

插入、刪除操作簡(jiǎn)單,無(wú)需移動(dòng)大量的元素

表容量易于擴(kuò)充

缺點(diǎn):[2.5分

每個(gè)數(shù)據(jù)元素,除存儲(chǔ)本身信息外,還需空間存儲(chǔ)其直接后繼的信息

邏輯相鄰,物理不一定相鄰

不可隨機(jī)存取任一元素,只能從鏈表頭依次查找.

5.有順序表A=<aO,a1,22,..88?9,..總19>,要在28?9之間插入一個(gè)元素a20,

請(qǐng)描述其操作〈思想>步驟。〈中等〉

插入思想或步驟:根據(jù)順序表的存儲(chǔ)特點(diǎn),要在表中某位置10插入一新數(shù)據(jù)元素,則要進(jìn)

行如下兩步操作:

11、從位置10到表尾位置的所有數(shù)據(jù)元素均要從后至前依次向后移一個(gè)存儲(chǔ)位置,

為新插入結(jié)點(diǎn)騰出第10個(gè)位置。[2分

12、將新結(jié)點(diǎn)插入到空余位置10處。2分

〔3表長(zhǎng)度加1.11分

6.有順序表A=<a0,a1,a2,..a8,a9,…a19>,要?jiǎng)h除一個(gè)元素a9,請(qǐng)描述其操作

(思想〉步驟?!粗械取?/p>

門然后將從位置11到表尾的所有數(shù)據(jù)元素依次向前移一個(gè)存儲(chǔ)位置。[3分

〔2表長(zhǎng)度減1.12分

7.請(qǐng)描述在順序表中第i個(gè)位置插入新的數(shù)據(jù)x操作過程。

根據(jù)順序表的存儲(chǔ)特點(diǎn),要在表中某位置i插入一新數(shù)據(jù)元素,則要進(jìn)行如下兩步操作:

(1從位置i到表尾位置的所有數(shù)據(jù)元素均要從后至前依次向后移一個(gè)存儲(chǔ)位置,為新插

入結(jié)點(diǎn)騰出第i個(gè)位置;[2分

(2將新數(shù)據(jù)x插入到空余位置i處。[2分

(3表長(zhǎng)度加1.(1分

8.請(qǐng)描述在順序表中刪除第i個(gè)位置的數(shù)據(jù)的過程。

11然后將從位置i到表尾的所有數(shù)據(jù)元素依次向前移一個(gè)存儲(chǔ)位置。[3分

(2表長(zhǎng)度減1.(2分

9.請(qǐng)描述在一個(gè)單鏈表中插入一個(gè)數(shù)據(jù)q的插入過程。

(1)找到將插入數(shù)據(jù)位置的前一個(gè)結(jié)點(diǎn)p;11分

(2)q的next值等于p的next值;(2分

(3p的next值等于q;[2分

10.請(qǐng)描述從一個(gè)單鏈表中刪除一個(gè)數(shù)據(jù)的刪除過程。

(1找到將被刪除數(shù)據(jù)的前一個(gè)結(jié)點(diǎn)P;(2分

(2p的next指針指向被刪除數(shù)據(jù)的后一個(gè)結(jié)點(diǎn);(2分

(3將被刪除數(shù)據(jù)原來(lái)的next指針指向null;11分

第三章棧和隊(duì)列

1.請(qǐng)簡(jiǎn)述線性表、棧和隊(duì)列三者之間的聯(lián)系?!埠?jiǎn)單

(1線性表、棧和隊(duì)列都屬于線性結(jié)構(gòu)。[2分

(2棧和隊(duì)列都是特殊的線性表,并且都有順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)兩種存儲(chǔ)方式。(1分

(3棧是一種先進(jìn)后出的線性表,隊(duì)列是一種先進(jìn)先出的線性表(2分

2.在計(jì)算機(jī)進(jìn)行運(yùn)算時(shí),需要把十進(jìn)制轉(zhuǎn)換為二進(jìn)制。請(qǐng)問答:這種數(shù)制轉(zhuǎn)換可

以借助于哪種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)、及原因。

答:棧。(2分

原因:(3分

在進(jìn)行數(shù)值轉(zhuǎn)換時(shí),其實(shí)質(zhì)是求余的過程,并且余數(shù)的倒序序列正是所求結(jié)果。

棧是一種先進(jìn)后出的線性結(jié)構(gòu),能夠滿足這種操作。

3.有一字符序列abcde依次按照某一線性結(jié)構(gòu)存儲(chǔ),請(qǐng)回答以下問題:

6、如果該線性結(jié)構(gòu)是隊(duì)列,那么,寫出出隊(duì)序列。

〔2、如果該線性結(jié)構(gòu)是棧,那么,輸出序列可能是d,c,e,a,b嗎,為什么?

[3、如果該線性結(jié)構(gòu)是棧,且輸出序列是abcde。請(qǐng)寫出操作過程。[push<x>:表示把

X壓入棧內(nèi);pop<X>:表示把X彈出棧

答:

[1、abcde[1分

12、不可能,因?yàn)椋篸是第一出棧字符,說(shuō)明a,b已別壓入棧內(nèi);并且壓入棧的次序?yàn)?/p>

abcde;由以上得出:ab出棧的順序只能是b、a,而不是a、b。所以,出棧序列d,c,e,a,b

是不可能的。(2分

〔3、〔2分

push<a>,pop<a>

push<b>,pop<b>

push<c>,pop<c>

push<d>,pop<d>

push<e>,pop<e>

4.簡(jiǎn)述棧和隊(duì)列的異同點(diǎn)。

相同點(diǎn):棧和隊(duì)列都是只允許在表的端點(diǎn)處進(jìn)行插入、刪除操作的線性表。[2分

不同點(diǎn):棧的特點(diǎn)是先進(jìn)后出,隊(duì)列的特點(diǎn)是后進(jìn)先出。[3分

5.若依次讀入數(shù)據(jù)元素序列1、2、3,進(jìn)棧的過程中允許出棧,試寫出各種可能

的出棧序列。

答:123、132,213、231、321[各1分

6.如果入棧序列有ABC組成,請(qǐng)問輸出序列可能有哪些?〈較難〉

輸出序列有5種:

CBA,BCA,BAC,ACB,ABC(各1分

7.如果有abcde五個(gè)數(shù)據(jù)依次全部存入,如果采用隊(duì)列和棧來(lái)進(jìn)行存儲(chǔ),依次取

出分別將獲得什么內(nèi)容?!埠?jiǎn)單

隊(duì)列:abcde(2.5分

棧:edcba(2.5分

8.設(shè)將整數(shù)1,2,3,4依次進(jìn)棧,能否得到1423出棧序列和1432?并說(shuō)明為什么

不能得到或者如何得到?!仓械?/p>

不能得到1423,但可以得到1432(2分

因?yàn)橐玫?必須將所有數(shù)據(jù)入棧,這樣將只能依次獲取到1432不能獲得1423。采用

push、pop、push、push>push、pop、pop、pop可以獲得1432。(3分

9.循環(huán)隊(duì)列的優(yōu)點(diǎn)是什么?如何判斷它的空和滿?〈可不考〉

循環(huán)隊(duì)列的優(yōu)點(diǎn)是可以克服順序隊(duì)列的“假上溢”現(xiàn)象,能夠使存儲(chǔ)隊(duì)列的向量空間得到

充分的利用。(3分采用犧牲一個(gè)元素空間的方法,循環(huán)隊(duì)列隊(duì)空的條件是front==rear,

循環(huán)隊(duì)列隊(duì)滿的條件是:〈rear+l>%M==front。(2分

第四章串

1.對(duì)于字符串S='abcde',請(qǐng)問:〔簡(jiǎn)單

[1字符串s的長(zhǎng)度是多少?

12字符串S的子串有幾個(gè),并列出所有子串?

答:

(1、511分

[2、16,11分所有字串「a'、,b,、,c,、,d'、,e,、,ab'、"be'、'

cd'、'de'、'abc'、

'bed'、'cde'、'abed'、'bcde,、'abcde?、①。[3分

2.對(duì)于字符串S='12345',請(qǐng)問:〔簡(jiǎn)單

【I字符串S的長(zhǎng)度是多少?

[2字符串S的子串有幾個(gè),并列出所有子串?

答:

[1、511分

[2、16,11分所有字串:,V、,2,、,3,、,4,、,5,、,12,、'23,、?

34‘、'45'、'123'、

'234'、'345'、'1234'、'2345'、'12345'、①。(3分

3.請(qǐng)問答:什么串的模式匹配?模式匹配算法有幾種?〔簡(jiǎn)單

答:串的模式匹配是指子串的定位運(yùn)算,即在主串中查找子串第一次出現(xiàn)的位置。

模式匹配算法有兩種:簡(jiǎn)單匹配算法<Brute-Force>、KMP算法。

〔該題共4個(gè)得分點(diǎn),答對(duì)串匹配定義或大意基本相同,得2分;答對(duì)兩種匹配算,得2

分,答錯(cuò)或少答一個(gè)扣1分

第五章數(shù)組和廣義表

1.在數(shù)據(jù)結(jié)構(gòu)中,數(shù)組是最基本的結(jié)構(gòu),請(qǐng)完成以下要求:

(1、定義一個(gè)能容納5個(gè)整型元素的數(shù)組iAry,且元素的值為10、20、30、40、50。[2、*

畫出數(shù)組iAry的順序存儲(chǔ)結(jié)構(gòu)?!惨?guī)定:整型長(zhǎng)度為兩個(gè)字節(jié)

(1、intiAry[5]={10、20、30、40、50}〔2分

(2、如下圖:[3分,根據(jù)情況,酌情扣分

2.簡(jiǎn)述數(shù)組的定義、特點(diǎn)和分類。〔簡(jiǎn)單

定義:數(shù)組是n個(gè)相同數(shù)據(jù)類型的數(shù)據(jù)元素a0,al,a2,...,an-l構(gòu)成的有限集合。(1個(gè)得分點(diǎn)

特點(diǎn):

1數(shù)組中各元素具有統(tǒng)一的類型;(1個(gè)得分點(diǎn)

2數(shù)組元素的下標(biāo)一般具有固定的上界和下界,即數(shù)組一旦被定義,它的維數(shù)和維界就不再改

變。[1個(gè)得分點(diǎn)

3數(shù)組的基本操作比較簡(jiǎn)單,除了結(jié)構(gòu)的初始化和銷毀之外,只有存取元素和修改元素值的操

作??趥€(gè)得分點(diǎn)

分類:按維度可分為一維數(shù)組、二維數(shù)組、多維數(shù)組(1個(gè)得分點(diǎn)

3.已知一個(gè)二維數(shù)組A如下所示?!草^難

(1請(qǐng)按照行優(yōu)先、列優(yōu)先的方式進(jìn)行順序存儲(chǔ),給出順序存儲(chǔ)的序列(2個(gè)得分點(diǎn)

行優(yōu)先:alla12al3a21a22a23

列優(yōu)先:alia21al2a22al3a23

12若all在內(nèi)存中存儲(chǔ)的地址為a,每個(gè)元素的存儲(chǔ)空間大小為L(zhǎng),則按照行優(yōu)先的方式

和列優(yōu)先的方式分別存儲(chǔ),其中a22的地址loc<a22>分別為多少〔2個(gè)得分點(diǎn)

行優(yōu)先:loc<a22>=a+4L

列優(yōu)先:Ioc<a22>=a+3L

〔3對(duì)于數(shù)組,除了順序存儲(chǔ)外,還有沒有其他存儲(chǔ)方式?沒有填無(wú),若有,請(qǐng)說(shuō)明。

有,鏈?zhǔn)酱鎯?chǔ),如下圖所示〔1個(gè)得分點(diǎn)

第六章樹和二叉樹

1.有一樹,如下圖所示:〔簡(jiǎn)單

請(qǐng)回答以下問題:

樹的葉子結(jié)點(diǎn)及其度。

(2非終端結(jié)點(diǎn)及其度。

門樹的深度。

答:

(1、葉子結(jié)點(diǎn)有:D、E、F、G,它們的度都為零。[2分

〔2、非終端結(jié)點(diǎn)有:A度為3,B度為2,C度為1。(2分

[3、樹的深度為3。(1分

2.請(qǐng)回答:樹與二叉樹有什么區(qū)別?〔中等

答:區(qū)別有兩點(diǎn):

〈1〉二叉樹的一個(gè)結(jié)點(diǎn)至多有兩個(gè)子樹,樹則不然。[2.5分

<2>二叉樹一個(gè)結(jié)點(diǎn)的子樹有左右之分,而樹的子樹沒有次序。(2.5分

3.有一棵具有n個(gè)結(jié)點(diǎn)的滿二叉樹。請(qǐng)問:該滿二叉樹的葉子結(jié)點(diǎn)數(shù)目是多少,

答:<n+l>/2?[2分

分析過程:滿二叉樹中只有度為2和度為0的結(jié)點(diǎn),故設(shè)葉子結(jié)點(diǎn)數(shù)目為:nO,度為2

結(jié)點(diǎn)數(shù)目為:n2-又由于n0=n2+l,n=n2+n0,所以可得出:n0=<n+l>/2。[3分

4.有一棵二叉樹,如下圖所示:〔簡(jiǎn)單請(qǐng)問答以下問題:

11、用先序遍歷法遍歷該二叉樹,則遍歷結(jié)果是什么?

(2、用中序遍歷法遍歷該二叉樹,則遍歷結(jié)果是什么?

(3、用后序遍歷法遍歷該二叉樹,則遍歷結(jié)果是什么?

答:[1、ABDCEF

[2、DBAECF

[3、DBEFCA〈錯(cuò)一個(gè)扣1.5分〉

5.請(qǐng)問如下二叉樹,如果采用前序'中序'后序遍歷結(jié)果是什么

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論