鄭州大學遠程教育學院數(shù)據(jù)結構試題及答案_第1頁
鄭州大學遠程教育學院數(shù)據(jù)結構試題及答案_第2頁
鄭州大學遠程教育學院數(shù)據(jù)結構試題及答案_第3頁
鄭州大學遠程教育學院數(shù)據(jù)結構試題及答案_第4頁
鄭州大學遠程教育學院數(shù)據(jù)結構試題及答案_第5頁
免費預覽已結束,剩余27頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、鄭州大學現(xiàn)代遠程教育數(shù)據(jù)結構課程(本科)學習指導書郭純一編嗡&W*答融抬普,L<inm4Mre4dLCht.Hwhai1,th°課程內(nèi)容與基本要求“數(shù)據(jù)結構”在計算機科學中是一門綜合性的專業(yè)基礎課。本課程將主要介紹數(shù)據(jù)結構的基本概念和術語、非數(shù)值計算中常用的數(shù)據(jù)結構(線性表、棧和隊列、用、樹和圖)和基本技術(查找和排序方法)三大部分。本課程要求學生在掌握線性表、棧和隊列、用、樹和二叉樹、圖等基本數(shù)據(jù)類型的基礎上,會分析各種數(shù)據(jù)結構的特性,會根據(jù)應用需求為所涉及的數(shù)據(jù)合理選擇適當?shù)倪壿嫿Y構和存儲結構,并能據(jù)此設計實現(xiàn)問題的算法;還應初步掌握算法的時間和空間效率的分析方法。

2、課程學習進度與指導早1課程內(nèi)容學時分配學習指導(均以課件學習為主)代'K弟一早緒論4學時重點掌握基本概念和時間復雜度的計算方法代'K"*弟一早線性表10學時重點掌握順序結構和鏈式結構表示線性表的方法和操作的實現(xiàn);結合具體例子理解編程實現(xiàn)一個問題的2種方法第三章棧和隊列8學時重點掌握棧和隊列的特點以及它們各自的存儲表示,尤其是順序棧和循環(huán)隊列的實現(xiàn);結合具體例子理解棧和隊列的應用第四章用2學時重點掌握用的術語、用操作結果和/、同存儲結構的特點第七章*樹和二叉樹10學時重點掌握二叉樹的定義、存儲、性質、遍歷算法(遞歸)及應用、線索化;掌握樹和森林與一叉樹的轉換以及Huff

3、man樹和Huffman編碼的構造方法第八章圖8學時重點掌握圖的術語、存儲、遍歷算法及應用;掌握最小生成樹的2種構造方法及特點、會求拓撲排序序列和單源最短路徑第九章*查找8學時重點掌握各種動態(tài)查找表的構造過程、性能分析、插入/刪除方法;掌握靜態(tài)查找表的順序、折半和分塊查找及ASL求法第十章*排序8學時掌握關于排序的術語及分類方法;重點掌握插入排序、交換排序、選擇排序等對F序方法及其性能分析方法褥料學岷格管理中心第一章緒論一、章節(jié)學習目標與要求1、理解數(shù)據(jù)抽象和信息隱蔽原則2、掌握所有的基本概念和術語、掌握時間復雜度的計算方法、會用C語言描述抽象數(shù)據(jù)類型和算法;能夠熟練使用C語言編寫程序二、本章

4、重點、難點重點:基本概念和術語,C語言描述算法的方式,簡單程序的時間復雜度的求法。難點:時間復雜度的計算方法和原則。三、章節(jié)練習(一)選擇題:1 .具有線性結構的數(shù)據(jù)結構是A.圖B.樹C.集合D.棧2 .計算機算法是指。A.計算方法和運算結果B.調度方法C.解決某一問題的有限運算系列D.排序方法3 .線性結構中,最后一個結點有個后繼結點。A.0B.1C.任意多4 .算法分析的目的是。A.找出數(shù)據(jù)結構的合理性B.研究算法中輸入和輸出的關系C.分析算法的效率以求改進D.分析算法的可讀性和可行性5 .具有非線性結構的數(shù)據(jù)結構是oA.圖B.線性表C.申D.棧6 .算法具有5個特性:?輸入和輸出。A.穩(wěn)

5、定性、確定性、可行性B.有窮性、確定性、可行性C.有窮性、安全性、可行性D.有窮性、確定性、可移植性7 .設n為正整數(shù)。則下面程序段的時間復雜度為。i=1;k=0;while(i<=n-1)k+=10*i;恒醒性華岷網(wǎng)結理中心i+;)A.O(1)B.O(n)C.O(nlogn)D.O(n2)8 .設n為正整數(shù)。則下面程序段的時間復雜度為。k=0;for(i=1;i<=n;i+)for(j=i;j<=n;j+)k+;)A.O(1)B.O(n)C.O(nlogn)D.O(n2)(二)判斷題:1 .在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為動態(tài)結構和靜態(tài)結構兩大類。()2 .任何一個

6、算法的設計取決于數(shù)據(jù)的邏輯結構,而算法的實現(xiàn)則依賴于所采用的存儲結構。()3 .數(shù)據(jù)元素是數(shù)據(jù)的不可分割的最小單位。()4 .算法分析的兩個主要方面是時間復雜度和空間復雜度。()第二章線性表一、章節(jié)學習目標與要求1、理解線性表的邏輯結構特性、順序表和鏈表表示線性表的優(yōu)缺點、循環(huán)鏈表和雙向鏈表的特點。2、掌握線性表的兩種存儲方式及其實現(xiàn):熟練掌握順序表和鏈表的創(chuàng)建、插入元素、刪除元素以及定位等常用操作的實現(xiàn)算法并會求相應算法的時間復雜度。二、本章重點、難點重點:線性表的特點、兩種表示方式及它們的運算實現(xiàn),會求算法的時間復雜度。難點:單鏈表結構、特點及其實現(xiàn)三、章節(jié)練習(一)選擇題:1 .順序表是

7、一種的存儲結構,單鏈表是的存儲結構。A.順序存取B.隨機存取C.索引存取2 .順序表中第一個元素的起始存儲地址為100,每個元素的長度為4,則第五個if忡學配絡if理中心mt*AMpAflaItanraijr元素的起始地址是。A.105B.110C.116D.1203 .非空循環(huán)單鏈表(head為頭指針)的尾結點(由指針p所指示)應滿足。A.p->next=NULL;B.p=NULL;C.p->next=head;D.p=head;4,若在線性表的任何位置上插入元素的概率是相等的,那么在長度為n的順序表中插入一個元素時需平均移動個元素。A.nB.(n-1)/2C.n/2D.(n+1

8、)/25 .在帶頭結點的非空單鏈表中,頭結點的位置由指示,首元結點的存儲位置由指示,除首元結點外,其它任一元素結點的存儲位置由旨示。A.頭指針B.頭結點的指針域的指針C.前驅結點的指針域的指針6 .單鏈表的頭指針為p,若有頭結點,則表空的判斷條件是;若不帶頭結點,則表空的判斷條件是0A.p=NULLB.p->next=NULLC.p->next->next=NULL(二)判斷題:1 .在單鏈表中插入或刪除元素時是以結點的指針變化來反映邏輯關系的變化,因此不需要移動元素。()2 .順序表能夠以元素在計算機內(nèi)的物理位置的相鄰性來表示線性表中元素之間的邏輯關系。()3 .在不帶頭結

9、點的非空單鏈表中,首元結點的存儲位置由頭指針指示,除首元結點外,其它任一元素結點的存儲位置由前驅結點的指針域的指針指示。()(三)問答題:1 .若線性表要求以最快的速度存取而表中元素變動不大,則應采取什么存儲結構(順序或鏈式結構)?為什么?2 .若線性表經(jīng)常做插入/刪除操作,則應采取什么存儲結構?為什么?3 .在單鏈表中設置頭結點有什么作用?(四)算法題:1 .設帶頭結點的單鏈表(L為頭指針)中的數(shù)據(jù)元素遞增有序。設計算法,將x插入到鏈表的適當位置上,并仍保持該表的有序性。2 .設順序表va中的數(shù)據(jù)元素遞增有序。設計算法,將x插入到順序表的適當位置上,并仍保持該表的有序性。3 .設計算法,實現(xiàn)

10、單鏈表的就地逆置,即利用原表的存儲空間將線性表(ai,a2,a。逆置為(an,an-i,ai)。第三章棧和隊列一、章節(jié)學習目標與要求1、理解用棧和隊列解決實際問題的方法。2、掌握棧和隊列的定義以及特性、它們的2種不同的存儲表示方法(特別是順序棧和循環(huán)隊列)以及各種常見操作(如入、出操作)在不同表示方式上的實現(xiàn)。二、本章重點、難點重點:棧和隊列的定義、各種表示和實現(xiàn)方法,加深對線性結構的理解難點:循環(huán)隊列的表示及為解決循環(huán)隊列隊空、隊涉判斷條件相同而使用的不同實現(xiàn)方式;能在具體問題中靈活運用棧和隊列結構。三、章節(jié)練習(一)選擇題:1 .一個棧的入棧序列是a,b,c,d,e,則棧的不可能的輸出序列

11、是。A.edcbaB.decbaC.dceabD.abcde2 .棧和隊列的共同點是。A.都是后進先出B.都是先進先出C.都是只允許在端點處插入和刪除元素D.無共同點3 .一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是。A.4321B.1234C.1432D.32414 .棧的入棧序列是1,2,,n,輸出序列為p1,p2,中"若p1=n,則pi為<A.iB.n-iC.n-i+1D.不確定5 .隊列是限定在進行插入,在進行刪除的線性表。A.隊頭B.隊尾C.任意位置6 .循環(huán)隊列中,設隊列元素依次存放在Q0.m中,f、r分別指示隊頭元素位置和隊尾元素的下一個位置,約定存儲m

12、個元素時為隊滿。則隊列空的判定方法是,隊列滿的判定方法是。if忡學岷絡it理中心A.f=rB.(f+1)%(m+1)=rC.(r+1)%(m+1)=fD.(r+1)%m=f(二)判斷題:1 .若用戶無法估計所用隊列的最大長度,則最好采用鏈隊列。()2 .在鏈隊列上刪除隊頭元素時,只需修改頭結點中的指針,不必修改尾指針。()3 .棧是限定僅在棧頂進行插入或刪除操作的線性表。()4 .隊列是限定在隊尾插入元素,在隊頭刪除元素的線性表。()(三)問答與算法題:1 .對于一個棧,若輸入序列依次為A,B,C,試給出所有可能的輸出序列。2 .假設將循環(huán)隊列定義為:以整型域變量front和length分別指

13、示循環(huán)隊列中隊頭元素位置和隊列中元素個數(shù),指針elem指示存放隊列元素的連續(xù)空間的首地址,寫出相應的入隊列和出隊列的算法。第四章申一、章節(jié)學習目標與要求1、理解用的抽象數(shù)據(jù)類型的定義以及相關術語、理解用在文本編輯中的作用。2、掌握字符串的定義及各種基本操作的運算結果以及用的各種存儲表示的特點。二、本章重點、難點重點:用的基本運算、用的各種存儲表示和特點。繼續(xù)加深對線性結構的理解難點:用的不同存儲結構,區(qū)分它們和高級語言中用的存儲方式的不同。三、章節(jié)練習(一)選擇題:1 .設用s="IAMASTUDENT",則其用長是。A.13B.14C.15D.162 .設s="

14、HEISAWORKER",t="WORKERMStrIndex(s,t,5)的返回值是。A.4B.5C.6D.9E.103 .申是一種特殊的線性表,其特殊性體現(xiàn)在。A.可以順序存儲B.數(shù)據(jù)元素是一個字符C.可以鏈接存儲D.數(shù)據(jù)元素可以是多個字符4 .已知用s="ABCDEFGH,則s的所有不同子用的個數(shù)為。程仲學岷IS理中心5 .設用s="Iamateacher.',則s的第8個字符起、長度為7的子用為<A."teacher."B."teacher"C."ateacher"D.&q

15、uot;teacher"6.設用s="student.",t=“good",則執(zhí)行StrInsert(s,1,t)后,s為A."goodstudent."B."goodstudent"C."goodstudent"D."goodteacher"(二)判斷題:空用和空格用是相同的2.如果兩個用含有相同的字符,則它們是相同的。3.4.第七章樹和二叉樹用的基本操作和線性表的一樣,都是以“單個元素”作為操作對象的。在用的鏈式存儲結構中,結點大小與存儲密度之間沒有關系。一、章節(jié)學習目標

16、與要求1、理解樹、二叉樹和森林的概念,理解線索化二叉樹的特性、創(chuàng)建方法及在線索二叉樹上尋找某結點的前驅和后繼的方法;理解樹與森林的存儲方法。2、掌握二叉樹的性質及表示;掌握二叉樹的各種遍歷方法(尤其是遞歸形式的)以及遍歷在實際問題中的應用;掌握樹及森林與二叉樹的轉換及遍歷方式的對應;掌握Huffman樹的構造方法以及構造Huffman編碼的方法。二、本章重點、難點重點:二叉樹的性質(及證明)、存儲結構及各種遍歷算法,二叉樹的線索化過程,樹和森林與二叉樹的轉換關系,Huffman樹及Huffman編碼的構造方法難點:各種遍歷算法的遞歸實現(xiàn)以及在具體問題中能靈活運用遍歷思想解題三、章節(jié)練習(一)選

17、擇題:1 .下列關于二叉樹的說法中,正確的有。A.二叉樹的度為2B.二叉樹的度可以小于2C.二叉樹中至少有一個結點的度為2D.二叉樹中任一個結點的度都為22 .任何一棵二叉樹的葉子結點在先、中、后序遍歷序列中的相對次序。A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對3 .下面幾個符號用編碼集合中,不是前綴編碼的是。A.0,10,110,1111B.11,10,001,101,0001C.00,010,0110,1000D.b,c,aa,ac,aba,abb,abc4 .二叉樹按某種順序線索化后,任意結點均有指向其前驅和后繼的線索,這種說法。A.正確B.不正確C.無法確定(二)判斷題:1

18、.哈夫曼樹是帶權葉子數(shù)目固定的二叉樹中帶權路徑長度最小的。2 .根據(jù)二叉樹的定義,具有3個結點的二叉樹有5種不同的形態(tài)。3 .深度為k的完全二叉樹至少有2k-1個結點,至多有2k1個結點。4 .具有n個結點的滿二叉樹,其葉子結點個數(shù)為U個。25 .在哈夫曼樹中,通常權值較大的結點離根較遠。(三)問答題:1.下圖所示森林轉化為相應的二叉樹,并在其上標出中序全線索。2,證明:深度為k的二叉樹上至多有2k-1個結點(k>1)。3 .證明:任何一棵滿二叉樹中的分支數(shù)B滿足B=2(n。一1),其中n。為葉子結點個數(shù)。4 .以數(shù)據(jù)集15,3,14,2,6,9,16,17為葉子的權值構造Huffman

19、W,畫出此樹并計算其帶權路徑長度。(四)算法題:1 .假設二叉排序樹(t為指向根結點的指針)中各元素值均不相同,設計一個遞歸算法按遞增順序輸出樹上各元素值。2 .編寫遞歸算法,交換二叉鏈表存儲的二叉樹中每個結點的左、右子樹。3 .編寫遞歸算法,求以二叉鏈表存儲的二叉樹的深度4 .設計遞歸算法計算以二叉鏈表存儲的二叉樹的葉子結點數(shù)目第八章一、章節(jié)學習目標與要求1、理解圖的基本概念和術語。2、掌握圖的鄰接矩陣和鄰接表2種表示方法;掌握圖的兩種遍歷算法及其求解連通性問題的方法;掌握用Prim算法和Kruskal算法構造最小生成樹的過程和性能分析;掌握人0«的拓撲排序方法(不要求算法),掌握

20、用Dijkstra方法求解單源最短路徑問題的方法(不要求算法)。二、本章重點、難點重點:圖的數(shù)組表示法和鄰接表表示法存儲結構以及圖的兩種遍歷方式,求最小生成樹的兩種方法,AOVW的拓撲排序方法,掌握單源最短路徑的求法難點:圖的兩種遍歷算法的實現(xiàn)以及在圖的連通性問題中的應用三、章節(jié)練習(一)選擇題:1.4個頂點的無向完全圖有條邊。A.6B.12C.16D.202 .無向圖的鄰接矩陣是一個。A.對稱矩陣B.零矩陣C.對角矩陣D.上三角矩陣3 .圖的廣度優(yōu)先遍歷算法類似于二叉樹的,圖的深度優(yōu)先遍歷算法類似于二叉樹的。A.先序遍歷B.中序遍歷C.后序遍歷D.層序遍歷4 .對,用Prim算法求最小生成樹

21、較為合適,而Kruskal算法適于構造圖的最小生成樹。A.完全圖B.連通圖C.稀疏圖D.稠密圖5 .對于含n個頂點、e條邊的無向連通圖,利用Prim算法構造最小生成樹的時問復雜度,用Kruskal算法構造最小生成樹的時間復雜度為A.O(n)B.O(nC.O(e)D.O(eloge)F.O(e(二)判斷題:1,若從無向圖的一個頂點出發(fā)進行廣度優(yōu)先遍歷可訪問到圖中所有頂點,則該圖一定是連通圖。()2,若從無向圖的一個頂點出發(fā)進行深度優(yōu)先遍歷可訪問到圖中所有頂點,則該圖一定是連通圖。()3,任何有向圖的頂點都可以排成拓撲有序序列,而且拓撲序列不唯一。()4,有n個頂點和n-1條邊的無向圖一定是生成樹

22、。()5.一棵有n個頂點的生成樹有且僅有n-1條邊。()6,連通分量是無向圖的極大連通子圖,而生成樹是無向圖的極小連通子圖。()(三)問答及算法題:0101.一個圖的鄰接矩陣G,arcs=101,該圖有多少個頂點?如果是有:。1L向圖,該圖共有多少條弧?如果是無向圖,該圖共有多少條邊?2,已知如右圖所示的有向圖,寫出該圖的:(1)鄰接矩陣(2)一個可能的拓撲有序序列(3)寫出從1出發(fā)的深度優(yōu)先遍歷序列(4)寫出從5出發(fā)的廣度優(yōu)先遍歷序列。3.假設有5項活動C1C5,每項活動要求的前驅活動如下:C1:無;C2:C1,C3;C3:C1;C4:C3,C5C5:C2;試根據(jù)上述關系,畫出相應的有向圖,

23、再寫出一個拓撲排序序列。4,基于圖的深度優(yōu)先遍歷策略寫一算法,判斷以鄰接表方式存儲的無向圖中連通分量的個數(shù)。第九章查找一、章節(jié)學習目標與要求1、理解各種查找表的定義、各種查找方法的思想以及構造查找表所依據(jù)的原則。2、掌握線性表表示的靜態(tài)查找表的順序查找和折半查找算法及其性能分析方法;掌握二叉排序樹的創(chuàng)建、查找、插入、刪除算法及其性能分析方法;掌握AVL樹的平衡化旋轉方法及其性能分析;掌握B-樹的插入和刪除時結點的分裂和合并方法;掌握Hash法的查找、構造方法平均查找長度的計算方法。二、本章重點、難點重點:各種樹結構表示的動態(tài)查找表和Hash表的構造方法難點:二叉排序樹的刪除、AVL樹的旋轉處理

24、、B-樹的插入和刪除、Hash法的構造以及各種查找表的平均查找長度的計算方法三、章節(jié)練習(一)選擇題:1 .二叉排序樹可得到一個關鍵字的有序序列。A.先序遍歷B.中序遍歷C.后序遍歷D.層序遍歷2 .用鏈地址法處理沖突構造的散列表中,每個地址單元所鏈接的同義詞表中結點的相同。A.關鍵字B.元素值C.散列地址D.含義3 .利用折半查找方法在長度為n的有序表中查找一個元素的平均查找長度A.O(n2)B.O(nlogn)C.O(n)D.O(logn)4 .散列表的裝填因子越大,則發(fā)生沖突的可能性就。A.越小B.越大C.不確定5 .線性表中共有256個元素,采用分塊查找,若查找每個元素的概率相等,用順

25、序查找確定結點所在的塊,每塊有個元素時查找效率最佳。A.16B.20C.25D.2566 .用折半查找對長度為7的有序表進行查找,則等概率下查找成功時的平均查找長度為。A.15/7B.17/7C.18/7D.19/77 .有序表(1,32,41,45,62,75,77,82,95,100),使用折半查找關鍵字為95的元素時,需要經(jīng)過次比較后才能查找成功。A.2B.3C.4D.5(二)判斷題:1 .折半查找和二叉排序樹的查找時間性能一樣。()2 .在任意一棵非空的二叉排序樹中,刪除某結點后又將其插入,則所得的二叉e琳#法學髓狀舞排序樹與刪除前的二叉排序樹形態(tài)相同。()3 .根據(jù)B-樹的定義,在9

26、階B-樹中,除根以外的任何一個非葉子結點中的關鍵字數(shù)目均在59之間。()4 .折半查找時,要求線性表必須是有序的且以順序結構存儲。()(三)問答題:1.設有一組關鍵字序列19,1,23,14,55,20,84,27,68,11,40,(1)按表中元素順序構造一棵二叉排序樹,畫出這棵樹,并求其在等概率情況下查找成功時的平均查找長度。(2)從空樹開始,按表中元素順序構造一棵2_3t(3階B邛t),若此后再刪除55,84,畫出每一步執(zhí)行后2_3樹的狀態(tài)。2 .設散列函數(shù)H(key)=keyMOD7,用線性探測再散列法解決沖突。對關鍵字序歹113,28,72,5,16,8,7,11在地址空間為0-10

27、的散列區(qū)中建散列表,畫出此表,并求等概率情況下查找成功時的平均查找長度。3 .關鍵字序列:13,28,72,5,16,18,7,11,24,h(key)=keymod11,表長為11,用線性探測再散列處理沖突,試填寫下表并計算每個關鍵字的比較次數(shù)和等概率情況下查找成功時的平均查找長度。012345678910比較次數(shù)ASL=4.在地址空間為0-16的散列區(qū)中,對以下關鍵字序列(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)按鏈地址法處理沖突構造散列表,設散列函數(shù)H(x)=i/2,其中i為關鍵字中第一個字母在字母表中的序號。畫出該散列表并求在

28、等概率情況下查找成功時的平均查找長度。第十章排序一、章節(jié)學習目標與要求1、理解排序相關的定義以及排序方法的各種分類,理解各種排序方法的基本思想和依據(jù)原則。2、掌握內(nèi)部排序的基本概念和性能分析方法;掌握插入排序、交換排序、選擇排序等內(nèi)排序的方法及其性能分析方法。二、本章重點、難點重點:各類內(nèi)部排序方法所依據(jù)的原則、特點及典型算法。難點:希爾排序、快速排序、堆排序三、章節(jié)練習(一)選擇題:1,下列方法中,是穩(wěn)定的排序方法。A.堆排序B,希爾排序C,快速排序D,折半插入排序2,設有1000個無序的元素,希望用最快的速度選出其中前20個最大的元素,最好用排序方法。A,冒泡排序B,快速排序C,堆排序D,

29、希爾排序3 .下列序列中,是堆。A,12,35,20,60,40,30B,100,85,120,38,10,9,36C,1,5,6,24,7,3,4D,38,24,15,20,30,464 .在待排序的元素序列基本有序時,效率最高的排序方法是。A,插入排序B,選擇排序C,快速排序D,歸并排序5 .在下列排序方法中,某一趟結束后未必能選出一個元素放在其最終位置上的A,堆排序B,起泡排序C,快速排序D,直接插入排序6 .對序列22,86,19,49,12,30,65,35,18進行一趟排序后得到的結果為18,12,19,22,49,30,65,35,86,則其使用的排序方法為。A,插入排序B,選擇

30、排序C,快速排序D,起泡排序7,下列方法中,算法的時間復雜度為O(n2)。A,堆排序B,希爾排序C,快速排序D,直接插入排序8,對n個記錄的序列進行堆排序,最壞情況下的時間復雜度為。A,O(logn)B,O(nlogn)C,O(n)D,O(n2)(二)判斷題:1,快速排序的速度在所有排序方法中是最快的,而且所需的附加空間也最少。()2,對一個堆按層次遍歷,不一定能得到一個有序序列。()3.由于希爾排序的最后一趟與直接插入排序過程相同,所以前者一定比后者花費格it理中心rwat的時間多。()4.快速排序算法在待排序數(shù)據(jù)有序時最不利于發(fā)揮其長處。()(三)問答題:1 .在快速排序過程中,通常取序列

31、中的第1個記錄作為樞軸,以它為“分界線”重排其余記錄。但當初始記錄序列按關鍵字有序或基本有序時,快速排序將蛻化為起泡排序,為改進之,應如何選取樞軸記錄?2 .判斷以下序列是否是堆,若不是,把它調整為堆(要求記錄交換次數(shù)最少),寫出調整后的序列。1 )5,26,20,60,80,35,53,702 )26,33,35,29,19,12,223 .已知關鍵字序列70,83,100,65,10,9,7,32,寫出直接插入排序和快速排序每一趟結束時的關鍵字狀態(tài)。4 .設關鍵字集合為10,2,14,8,12,13,(1)寫出用希爾排序方法對序列排序時每一趟結束時的關鍵字狀態(tài)。(2)用堆排序方法對其從小到

32、大排序,畫出堆排序的初態(tài)、建堆和排序過程中重建堆的過程??荚嚹M題客觀題部分一、單項選擇題:(每空2分,共20分)1 .單鏈表是線性表的一種的存儲結構。A.順序存取B.隨機存取C.索引存取2 .棧和隊列的共同點是。A.都是后進先出B.都是先進先出C.都是只允許在端點處插入和刪除元素D.無共同點3 .設s="HEISAWORKER",t="WORKER"則index(s,t,5)的返回值是。A.4B.5C.6D.9E.104 .用是一種特殊的線性表,其特殊性體現(xiàn)在。理獨學岷結管理中心iWaifA,可以順序存儲B.數(shù)據(jù)元素是一個字符C,可以鏈接存儲D,數(shù)據(jù)元

33、素可以是多個字符5 .樹最適合用來表示。A.有序數(shù)據(jù)元素B,無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D,元素之間無關聯(lián)的數(shù)據(jù)6 .4個頂點的無向完全圖有條邊。A.6B,12C,16D.207 .散列表的裝填因子越大,則發(fā)生沖突的可能性就。A,越小B,越大C,不確定8 .在長度為n的有序表中折半查找一個元素的平均查找長度是。A,O(n2)B,O(nlogn)C,O(n)D,O(logn)9,下列方法中,是不穩(wěn)定的排序方法。A,折半插入排序B,直接插入排序C,冒泡排序D,堆排序10. 二叉排序樹可得到一個關鍵字的有序序列。A.先序遍歷B,中序遍歷C,后序遍歷D,層序遍歷二、是非題:(每題1分

34、,共10分)(說明:正確的選“A”,錯誤選"B')1 .線性表的順序存儲結構優(yōu)于鏈式存儲結構。()2 .空用和空格用是相同的。()3 .圖結構中,每個結點的前驅和后續(xù)都可以有任意多個。()4 .快速排序算法在待排序數(shù)據(jù)有序時最不利于發(fā)揮其長處。()5 .連通網(wǎng)的最小生成樹是唯一的。()6 .棧是FIFO的線性表。()7 .由二叉樹的先序和后序遍歷序列不能唯一確定這棵二叉樹。()8 .若從無向圖的一個頂點出發(fā)進行廣度優(yōu)先遍歷可訪問到圖中的所有頂點,則該圖一定是連通圖。()9 .折半查找方法要求查找表必須是關鍵字的有序表,但是對存儲結構沒有限制。()10 .在一棵非空二叉樹的中序

35、遍歷序列中,根結點的右邊只有其右子樹上的所有結點主觀題部分則應采取什么存、簡答題:(50分)1,若線性表要求以最快的速度存取而表中元素變動不大,儲結構(順序或鏈式結構)?為什么?(10分)(10分)2,將下圖所示森林轉化為二叉樹并在其上標出中序全線索33,已知如右圖所示的有向圖,寫出該圖的:(1)鄰接矩陣(2)一個可能的拓撲有序序列。(10分)對關鍵字序4.設散列函數(shù)H(key)=keyMOD7,用線性探測再散列法解決沖突。列13,28,72,5,16,8,7,9,11,29在地址空間為0-10的散列區(qū)中建散列表,回出此表,并求等概率情況下查找成功時的平均查找長度。(10分)5.對于序列26,

36、33,35,29,19,12,22,(1)判斷它是否是堆,若是,寫出其是大頂堆還是小頂堆;若不是,把它調整為堆,寫出調整的過程和調整后的序列。(5分)(5分)(10分)(2)寫出對該序列進行直接插入排序每一趟結束時的關鍵字狀態(tài)。、算法設計題:(20分)1、編寫遞歸算法,計算二叉鏈表存儲的二叉樹的結點數(shù)目。2、基于圖的深度優(yōu)先遍歷策略寫一算法,判斷以鄰接表方式存儲的無向圖中連通分量的個數(shù)。(10分)褥的同學岷格管理中心附:答案或答案要點第一章章節(jié)練習答案(一)選擇題:1.D2.C3.A4.C5.A6.B7.B8.D(二)判斷題:1.x2.V3.X4.V第二章章節(jié)練習答案(一)選擇題:1.B,A2

37、.C3.C4.C5.A,B,C6.B,A(二)判斷題:1.V2,V3,V(三)問答題:1.應采用順序結構。因為順序表是隨機存取的存儲結構,在順序表中存取任何元素所花的時間都一樣。而鏈表是順序存取的存儲結構。2,應采用鏈式結構。因為在鏈表中是以結點的指針變化來反映邏輯關系的變化,因此不需要移動元素,效率高。3.頭結點在位置上可視為首元結點的前驅,則做插入/輸出操作時,i=1(即插入或刪除白位置是1)時不需要做特別處理,否則i=1時需要修改頭指針。(四)算法題:1. statusinsert_L(LinkListL,ElemTypex)/*帶頭結點*/LinkListp,s;for(p=L;p-&

38、gt;next&&p->next->data<x;p=p->next);s=(LinkList)malloc(sizeof(LNode);if(!s)returnOVERFLOW;s->data=x;s->next=p->next;p->next=s;returnOK;2. statusinsert_Sq(SqList*va,ElemTypex)inti;if(va->length=va->listsize)exitOVERFLOW;絡it理中心for(i=va->length-1;i>=0&&am

39、p;va->elemi>x;-i)va->elemi+1=va->elemi;va->elemi+1=x;va->length+;returnOK;3. voidreverse(LinkListL)/*帶頭結點*/LinkListp;p=L->next;L->next=NULL;for(;p;p=p->next)q=p->next;p->next=L->next;L->next=p;第三章章節(jié)練習答案(一)選擇題:1.C2.C3.B4.C5.B,A6.A,C(二)判斷題:1.V2.X3.V4.V(三)問答與算法題:1

40、 .所有可能的輸出序列有:ABC、ACB、BAC、BCA、CBA2 .算法:#defineMAXQSIZE100typedefstructElemType*elem;intfront;intlength;CycQueue;statusEnQueue(CycQueue*Q,ElemTypee)if(Q->length=MAXQSIZE)returnERROR;Q->elem(Q->front+Q->length)%MAXQSIZE=e;Q->length+;returnOK;)statusDeQueue(CycQueue*Q,ElemType*e)(if(Q->

41、;length=0)returnERROR;*e=Q->elemQ->front;Q->length-;returnOK;)第四章章節(jié)練習答案(一)選擇題:1.B2,D3.B4.D5.B6.A(二)判斷題:1.X2,X3.X4.X第七章章節(jié)練習答案(一)選擇題:1.B2,A3.B4.B4.V5,義(三)問答題:(二)判斷題:1,V2,V3,V®即業(yè)法學髓必舞2.證明:由于深度為k的二叉樹的最大結點數(shù)為二叉樹上每一層的最大結點數(shù)之和,而二叉樹上第i層的最大2點數(shù)為2i-10則kkZ(第i層的最大結點數(shù))=£2i-1=2k-1i1i43,證明:設no為葉子結點

42、個數(shù),血為度為2的結點個數(shù),則由二叉樹的性質2可知:n2=no-1又:滿二叉樹中只有度為2的結點和葉子結點,所以滿二叉樹中的結點總數(shù)n=n2+no=2no1又:二叉樹中的分支數(shù)B=n1所以:B=2n011=2(n01)4.wpl=(16+17)*2+(9+14+15)*3+6*4+(2+3)*5=229(四)算法題:1. voidoutput(BiTreet)(if(t)output(t->lchild);printf(t->data);output(t->rchild);絡if理中心mu*匐HhhfAaItepnijr2. voidexchange(BiTreet)(BiT

43、reetemp;if(t)temp=t->lchild;t->lchild=t->rchild;t->rchild=temp;exchange(t->lchild);exchange(t->rchild);3. intdepth(BiTreet)intl,r;if(!t)return0;l=depth(t->lchild);r=depth(t->rchild);return(l>=r?l:r)+1;4. voidleaf(BiTreet)if(!t)return0;if(!t->lchild&&!t->rchil

44、d)return1;returnleaf(t->lchild)+leaf(t->rchild);第八章章節(jié)練習答案(一)選擇題:1.A2.A3.D,A4.D,C5.B,D(二)判斷題:1.V2.V3.X4.X5.V6.V(三)問答及算法題:1.圖中共有3個頂點,如果是有向圖,該圖共有5條?。蝗绻菬o向圖,該圖共有3條邊。2.(1)鄰接矩陣:一。000000010000001001000000010001(2)可能的拓撲序列為:156234(注意4一定是最后一個,2一定在1和5后)(3)123456(4)562431(for(i=0;i<G.vexnum;i+)visitedi

45、=false;sum=0;for(i=0;i<G.vexnum;i+)if(!visitedi)sum+;dfs(G,i);returnsum;voiddfs(AlGraphG,inti)visitedi=true;for(p=G.verticesi.firstarc;p;p=p->nextarc)k=p->adjvex;if(!visitedk)dfs(G,k);)第九章章節(jié)練習答案(一)選擇題:1.B2,C3.D4.B5.A6.B7.B(三)問答題:1.(DASL=(1+2*2+3*3+3*4+2*5)/11=36/11(2)2_3樹:3.(二)判斷題:1.X2.X3.(

46、3)刪除55:刪除84:X4.12gl詞幣13|11n2.ASL=(1+1+1+2+5+1+1+4)/8=16/8=23、012345678910哈希表1113245287216187比較次數(shù)112112434ASL=(1+1+2+1+1+2+4+3+4)/9=19/94.用鏈地址法處理沖突:(注意鏈表的有序性)012345678910111213141516ASL=(7*1+4*2+1*3)/12=18/12第十章章節(jié)練習答案(一)選擇題:1.D2.C3.A4.A5.D6.C7.D8.B(二)判斷題:1.x2.V3.X4.V(三)問答題:1 .應依據(jù)“三者取中”的原則,比較第一個、最后一個和中間位置處記錄的關鍵字,取關鍵字居中

溫馨提示

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

評論

0/150

提交評論