




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦數(shù)據(jù)結(jié)構(gòu)試卷B卷(含答案)《數(shù)據(jù)結(jié)構(gòu)》試卷B
一、填空題(每空1分,共15分)
1.向量、棧和隊列都是結(jié)構(gòu),可以在向量的
位置插入和刪除元素;對于棧只能在插入和刪除元素;對于隊列只能在插入和刪除元素。
2.棧是一種特別的線性表,允許插入和刪除運算的一端稱
為。不允許插入和刪除運算的一端稱為。
3.數(shù)據(jù)結(jié)構(gòu)是一門討論非數(shù)值計算的程序設(shè)計問題中計算
機(jī)的以及它們之間的和運算等的學(xué)科。
4.在挨次表中插入或刪除一個元素,需要平均移動
元素,詳細(xì)移動的元素個數(shù)與
有關(guān)。
5.在具有n個單元的循環(huán)隊列中,隊滿時共有
個元素。
6.假設(shè)在有序線性表a[20]上舉行折半查找,則比較一次查找勝利的結(jié)點數(shù)為1;比較兩次查找勝利的結(jié)點數(shù)為;比較四次查找勝利的結(jié)點數(shù)為;平均查找長度為。
二、推斷正誤(推斷下列概念的正確性,并作出簡要的說明。)(每小題1分,共10分)
()1.線性表的每個結(jié)點只能是一個容易類型,而鏈表的每個結(jié)點可以是一個復(fù)雜類型。
()2.在表結(jié)構(gòu)中最常用的是線性表,棧和隊列不太常用。
()3.棧是一種對全部插入、刪除操作限于在表的一端舉行的線性表,是一種后進(jìn)先出型結(jié)構(gòu)。
()4.對于不同的使用者,一個表結(jié)構(gòu)既可以是棧,也可以是隊列,也可以是線性表。
()5.線性表的規(guī)律挨次與存儲挨次總是全都的
()6.棧和隊列是一種非線性數(shù)據(jù)結(jié)構(gòu)。
()7.棧和隊列的存儲方式既可是挨次方式,也可是鏈接方式。
()8.兩個棧分享一片延續(xù)內(nèi)存空間時,為提高內(nèi)存
利用率,削減溢出機(jī)會,應(yīng)把兩個棧的棧底分
別設(shè)在這片內(nèi)存空間的兩端。
()9.隊是一種插入與刪除操作分離在表的兩端舉行的線性表,是一種先進(jìn)后出型結(jié)構(gòu)。
()10.一個棧的輸入序列是12345,則棧的輸出序列不行能是12345。
三、單項挑選題(每小題1分,共20分)
()1.?dāng)?shù)據(jù)在計算機(jī)存儲器內(nèi)表示時,物理地址與邏
輯地址相同并且是延續(xù)的,稱之為:(A)存儲結(jié)構(gòu)(B)規(guī)律結(jié)構(gòu)(C)挨次存儲結(jié)構(gòu)(D)鏈?zhǔn)酱鎯Y(jié)構(gòu)
()2.若已知一個棧的入棧序列是1,2,3,…,n,其輸出序列為p1,p2,p3,…,pn,若p1=n,則pi為
A.iB.n=iC.n-i+1
D.不確定
()3.判定一個棧ST(最多元素為m0)為空的條件
是
A.ST->top0B.ST->top=0C.ST->topm0D.ST->top=m0
()4設(shè)矩陣A是一個對稱矩陣,為了節(jié)約存儲,將其
下三角部分(如下圖所示)按行序存放在一維數(shù)組B[1,
n(n-1)/2]中,對下三角部分中任一元素ai,j(i≤j),在一維數(shù)
組B中下標(biāo)k的值是:A.i(i-1)/2+j-1B.i(i-1)/2+j
C.i(i+1)/2+j-1D.i(i+1)/2+j
()5.具有n(n>0)個結(jié)點的徹低二叉樹的深度
為。
(A)?log2(n)?(B)?log2(n)?(C)?log2(n)
?+1(D)?log2(n)+1?
()6.有8個結(jié)點的無向連通圖最少有條邊。
A.5B.6C.7
D.8
7.數(shù)據(jù)結(jié)構(gòu)反映了數(shù)據(jù)元素之間的結(jié)構(gòu)關(guān)系。鏈表是一種??????
????????=nnnnaaaaaaA,2,1,2,21,21,1ΛΛ
A,它對于數(shù)據(jù)元素的插入和刪除
B。通常查找線性表數(shù)據(jù)元素的辦法有
C和
D兩種辦法,其中C是一種只適合于挨次存儲結(jié)構(gòu)但
E的辦法;而D是一種對挨次和鏈?zhǔn)酱鎯Y(jié)構(gòu)均適用的辦法。
供挑選的答案:
A:①挨次存儲線性表②非挨次存儲非線性表③挨次存儲非線性表④非挨次存儲線性表
B:①不需要移動結(jié)點,不需轉(zhuǎn)變結(jié)點指針②不需要移動結(jié)點,只需轉(zhuǎn)變結(jié)點指針
③只需移動結(jié)點,不需轉(zhuǎn)變結(jié)點指針④既需移動結(jié)點,又需轉(zhuǎn)變結(jié)點指針
C:①挨次查找②循環(huán)查找③條件查找④二分法查找
D:①挨次查找②隨機(jī)查找③二分法查找
④分塊查找
E:①效率較低的線性查找②效率較低的非線性查找③效率較高的非線性查找④效率較高的線性查找
答案:A=B=C=D=E=
8.散列法存儲的基本思想是按照A來打算B,碰撞(矛盾)指的是C,處理碰撞的兩類主要辦法是D。
供挑選的答案
A,B:①存儲地址②元素的符號③元素個數(shù)
④關(guān)鍵碼值
⑤非碼屬性⑥平均檢索長度⑦負(fù)載因子⑧散列表空間
C:①兩個元素具有相同序號②兩個元
素的關(guān)鍵碼值不同,而非碼屬性相同
③不同關(guān)鍵碼值對應(yīng)到相同的存儲地址④負(fù)載因子過大⑤數(shù)據(jù)元素過多
D:①線性探查法和雙散列函數(shù)法②建溢出區(qū)法和不建溢出區(qū)法
③除余法和折疊法④拉鏈法和開地址法
答案:A=B=C=D=
9.考慮具有如下性質(zhì)的二叉樹:除葉子結(jié)點外,每個結(jié)點的值都大于其左子樹上的一切結(jié)點的值。并小于等于其右子樹上的一切結(jié)點的值。
現(xiàn)把9個數(shù)1,2,3,…,8,9填入下圖所示的二叉樹的9個結(jié)點中,并使之具有上述性質(zhì)。此時,n1的值是A,n2的值是B,n9的值是C。現(xiàn)欲把10放入此樹并使該樹保持前述性質(zhì),增強(qiáng)的一個結(jié)點可以放在D或E。
供挑選的答案
A~C:①1②2③3④
4⑤
5⑥6
⑦7⑧8⑨9
D~E:①n7下面②n8下面
③n9下面
④n6下面⑤n1與n2之間
⑥n2與n4之間
⑦n6與n9之間⑧n3與n6之間
答案:A=B=C=
D=E=
四、簡答題(每小題5分,共25分)
1.說明線性表、棧與隊的異同點。
2.試寫出如圖所示的二叉樹分離按先序、中序、后序遍歷時得到的結(jié)點序列
3.假設(shè)正讀和反讀都相同的字符序列為“回文”,例如,‘a(chǎn)bba’和‘a(chǎn)bcba’是回文,‘a(chǎn)bcde’和‘a(chǎn)babab’則不是回文。假設(shè)一字符序列已存入計算機(jī),請分析用線性表、堆棧和隊列等方式正確輸出其回文的可能性?
4.試比較挨次存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的優(yōu)缺點。在什么狀況下用挨次表比鏈表好?
5.給定二叉樹的兩種遍歷序列,分離是:
前序遍歷序列:D,A,C,E,B,H,F(xiàn),G,I;
中序遍歷序列:D,C,B,E,H,A,G,I,F(xiàn),
試畫出二叉樹B,并簡述由隨意二叉樹B的前序遍歷序列和中序遍歷序列求二叉樹B的思想辦法。
五、閱讀理解(每小題5分,共20分)
1、已知L是無表頭結(jié)點的單鏈表,且P結(jié)點既不是首元結(jié)點,
也不是尾元結(jié)點,請寫出在P結(jié)點后插入S結(jié)點的核心語句序列。
2、閱讀下列算法,若有錯,改正之。
1.寫出下列程序段的輸出結(jié)果(隊列中的元素類型QElemType為char)。
voidmain(){
QueueQ;InitQueue(Q);
Charx=’e’;y=’c’;
EnQueue(Q,’h’);EnQueue(Q,’r’);EnQueue(Q,’y’);
DeQueue(Q,x);EnQueue(Q,x);
DeQueue(Q,x);EnQueue(Q,’a’);
while(!QueueEmpty(Q)){DeQueue(Q,y);printf(y);};Printf(x);
}
2.簡述以下算法的功能(棧和隊列的元素類型均為int)。voidalgo3(Queueintd;
InitStack(S);
while(!QueueEmpty(Q)){
DeQueue(Q,d);Push(S,d);
};
while(!StackEmpty(S)){
Pop(S,d);EnQueue(Q,d);
}
}
六、算法設(shè)計(每小題5分,共15分。至少要寫出思路)
1.寫出在挨次存儲結(jié)構(gòu)下將線性表逆轉(zhuǎn)的算法,要求使用最少的附加空間。
2.編寫程序,將若干整數(shù)從鍵盤輸入,以單鏈表形式存儲起來,然后計算單鏈表中結(jié)點的個數(shù)(其中指針P指向該鏈表的第一個結(jié)點)。
3.試寫一個算法,判別讀入的一個以‘@’為結(jié)束符的字符序列是否是“回文”。
答案
一、填空題(每空1分,共15分)
1.向量、棧和隊列都是線性結(jié)構(gòu),可以在向量的任何位置插入和刪除元素;對于棧只能在棧頂插入和刪除元素;對于隊列只能在隊尾插入和隊首刪除元素。
2.棧是一種特別的線性表,允許插入和刪除運算的一端稱為棧頂。不允許插入和刪除運算的一端稱為棧底。
3.數(shù)據(jù)結(jié)構(gòu)是一門討論非數(shù)值計算的程序設(shè)計問題中計算機(jī)的操作對象以及它們之間的關(guān)系和運算等的學(xué)科。
4.在挨次表中插入或刪除一個元素,需要平均移動表中一
半元素,詳細(xì)移動的元素個數(shù)與表長和該元素在表中的位置有關(guān)。
5.在具有n個單元的循環(huán)隊列中,隊滿時共有n-1個元
素。
8.假設(shè)在有序線性表a[20]上舉行折半查找,則比較一次查
找勝利的結(jié)點數(shù)為1;比較兩次查找勝利的結(jié)點數(shù)為
2;比較四次查找勝利的結(jié)點數(shù)為8;平均查找長
度為3.7。解:明顯,平均查找長度=O(log2n)top0B.ST->top=0
C.ST->topm0D.ST->top=m0
(B)4、設(shè)矩陣A是一個對稱矩陣,為了節(jié)約存儲,將
其下三角部分(如下圖所示)按行序存放在一維數(shù)組B[1,
n(n-1)/2]中,對下三角部分中任一元素ai,j(i≤j),在一維數(shù)
組B中下標(biāo)k的值是:
A.i(i-1)/2+j-1B.i(i-1)/2+jC.i(i+1)/2+j-1D.i(i+1)/2+j
(C)5.具有n(n>0)個結(jié)點的徹低二叉樹的深度
為。
(A)?log2(n)?(B)?log2(n)?(C)?log2(n)
?+1(D)?log2(n)+1?
(C)6.有8個結(jié)點的無向連通圖最少有條邊。
A.5B.6C.7??????
????????=nnnnaaaaaaA,2,1,2,21,21,1ΛΛ
D.8
7、答案:A=④B=②C=④D=①E=③
8、答案:A=④B=①C=③D=④
9、答案:A=⑦B=④C=⑥D(zhuǎn)=②E=⑥
四、簡答題(每小題4分,共20分)
1.說明線性表、棧與隊的異同點。
劉答:相同點:都是線性結(jié)構(gòu),都是規(guī)律結(jié)構(gòu)的概念。都可以用挨次存儲或鏈表存儲;棧和隊列是兩種特別的線性表,即受限的線性表,只是對插入、刪除運算加以限制。
不同點:①運算規(guī)章不同,線性表為隨機(jī)存取,而棧是只允許在一端舉行插入、刪除運算,因而是后進(jìn)先出表LIFO;隊列是只允許在一端舉行插入、另一端舉行刪除運算,因而是先進(jìn)先出表FIFO。
②用途不同,堆棧用于子程調(diào)用和庇護(hù)現(xiàn)場,隊列用于多道作業(yè)處理、指令寄存及其他運算等等。
2.試寫出如圖所示的二叉樹分離按先序、中序、后序遍歷時得到的結(jié)點序列。
答:DLR:ABDFJGKCEHILM
LDR:BFJDGKACHELIM
LRD:JFKGDBHLMIECA
3.假設(shè)正讀和反讀都相同的字符序列為“回文”,例如,‘a(chǎn)bba’和‘a(chǎn)bcba’是回文,‘a(chǎn)bcde’和‘a(chǎn)babab’則不是回文。假設(shè)一字符序列已存入計算機(jī),請分析用線性表、堆棧和隊列等方式正確輸出其回文的可能性?
答:線性表是隨機(jī)存儲,可以實現(xiàn),靠循環(huán)變量(j--)從表尾開頭打印輸出;
堆棧是后進(jìn)先出,也可以實現(xiàn),靠正序入棧、逆序出棧即可;
隊列是先進(jìn)先出,不易實現(xiàn)。
哪種方式最好,要詳細(xì)狀況詳細(xì)分析。若正文在機(jī)內(nèi)已是挨次存儲,則直接用線性表從后往前讀取即可,或?qū)⒍褩m旈_到數(shù)組末尾,然后直接用POP動作實現(xiàn)。(但堆棧是先減后壓還是……)
若正文是單鏈表形式存儲,則等同于隊列,需開輔助空間,可以從鏈?zhǔn)组_頭入棧,所有壓入后再依次輸出。
4.試比較挨次存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)的優(yōu)缺點。在什么狀況下用挨次表比鏈表好?
答:①挨次存儲時,相鄰數(shù)據(jù)元素的存放地址也相鄰(規(guī)律與物理統(tǒng)一);要求內(nèi)存中可用存儲單元的地址必需是延續(xù)的。
優(yōu)點:存儲密度大(=1?),存儲空間利用率高。缺點:插入或刪除元素時不便利。
②鏈?zhǔn)酱鎯r,相鄰數(shù)據(jù)元素可任意存放,但所占存儲空間分兩部分,一部分存放結(jié)點值,另一部分存放表示結(jié)點間關(guān)系的指針
優(yōu)點:插入或刪除元素時很便利,使用靈便。缺點:存儲密度小(next=P->next;
P->next=S;
2、答:這是找結(jié)點后繼的程序。
共有3處錯誤。
注:當(dāng)rtag
=1時說明內(nèi)裝后繼指針,可直接返回,第一句無錯。
當(dāng)rtag=0時說明內(nèi)裝右孩子指針,但孩子未必是后繼,需要計算。中序遍歷應(yīng)該先左再根再右,所以應(yīng)該找左子樹直到葉子處。r=r->lchild;直到LTag=1;
應(yīng)改為:while(!r->Ltag)r=r->Lchild;
3.寫出下列程序段的輸出結(jié)果(隊列中的元素類型QElem
Type為char)。
voidmain(){
QueueQ;InitQueue(Q);
Charx=’e’;y=’c’;
EnQueue(Q,’h’);EnQueue(Q,’r’);EnQueue(Q,y);
DeQueue(Q,x);EnQueue(Q,x);
DeQueue(Q,x);EnQueue(Q,’a’);
while(!QueueEmpty(Q)){DeQueue(Q,y);printf(y);};Printf(x);
}
答:輸出為“char”。
4.簡述以下算法的功能(棧和隊列的元素類型均為int)。voidalgo3(Queueintd;
InitStack(S);
while(!QueueEmpty(Q)){
DeQueue(Q,d);Push(S,d);
};
while(!StackEmpty(S)){
Pop(S,d);EnQueue(Q,d);
}
}
答:該算法的功能是:利用堆棧做輔助,將隊列中的數(shù)據(jù)元素舉行逆置。
六、算法設(shè)計(每小題5分,共15分。至少要寫出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管道施工安裝合同范本
- 出國勞動合同范本
- 遼寧省鐵嶺市鐵嶺縣2025屆九年級上學(xué)期12月期末考試數(shù)學(xué)試卷
- 2025年終總結(jié)匯報模板8
- 2025景觀照明工程施工合同書
- 2025年合作經(jīng)營合同模板示例
- 2025建筑吊車租賃合同模板
- 2025成都市房屋租賃合同樣本
- 高一語文新學(xué)案:第二單元《短歌行》
- 2025房屋租賃合同范本授權(quán)標(biāo)準(zhǔn)版
- 零售藥店處方藥銷售自查整改報告word(范文)
- 叉車日常維護(hù)保養(yǎng)檢查記錄表
- 東風(fēng)汽車特約店培訓(xùn)資料-WDMS維修系統(tǒng)培訓(xùn)管理(PPT 131頁)
- Q∕GDW 12070-2020 配電網(wǎng)工程標(biāo)準(zhǔn)化設(shè)計圖元規(guī)范
- 汽車半懸掛系統(tǒng)建模與分析(現(xiàn)代控制理論大作業(yè))
- 小學(xué)語文人教課標(biāo)版(部編)三年級下冊習(xí)作:我做了一項小實驗
- 畢業(yè)設(shè)計論文土木工程專業(yè)五層單身宿舍樓框架結(jié)構(gòu)設(shè)計
- 立式水輪發(fā)電機(jī)軸線分析及處理
- 蹲踞式起跑PPT
- 1云南省初中綜合素質(zhì),完整版綜合素質(zhì)評定表
- HAD 101-07《核電廠廠址查勘》_圖文
評論
0/150
提交評論