數(shù)據(jù)結(jié)構(gòu)第3章棧和隊列自測題答案_第1頁
數(shù)據(jù)結(jié)構(gòu)第3章棧和隊列自測題答案_第2頁
數(shù)據(jù)結(jié)構(gòu)第3章棧和隊列自測題答案_第3頁
數(shù)據(jù)結(jié)構(gòu)第3章棧和隊列自測題答案_第4頁
數(shù)據(jù)結(jié)構(gòu)第3章棧和隊列自測題答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

二i.向?、??隊列g(shù)aatt廉,可以在向■的曲位?《a和■除元素;對莉只能在 插入和;對于隊列只teaBUIMA和隊曹■Kt7uK.桟是一種特蛛的線性衰,允許插入和■除運算的TH9為業(yè)叫_.不允許插入和■除B*?-W3%_SS_.限定為只能在表的Tffi行插入運鼻,在表的另一岫州I除運鼻的線性 表.在f砌隊列中,隊首齡懾向隊首元素的衛(wèi)二》—位■.在具有n個單元的《駢隊列中,隊滿時共有上以元1L雌中壓入元素的操作是先存入同,后移aroas針.從aw隊列中■除fai時,具操作JI先移動隊W8tt,后取出元素.點的解:,I> ‘JI而土群(1「頭結(jié)|R=head| 」二判斷正誤(判斷下列II念的正備性,并作出唳的說明.)三(x 結(jié)g能*-MB單#S!,而嗣錯,線性表是邏輯結(jié)構(gòu)概念,可以Ji序存儲或鏈?zhǔn)酱鎯?與元素數(shù)據(jù)類型無關(guān).(X)2.在褰結(jié)構(gòu)中■常用的是線性裏,株和隊列不太常用.fll,不一定吧?調(diào)用子宣序或函散常用,CPU中也用隊列。

(v )3.棧是一種對所有插入、HMM作限于在哀的一行的線性獲,是一種后進(jìn)先出型結(jié)構(gòu).(v)4.對于不同的使用者,一個表結(jié)構(gòu)既可以是楊,也可以是隊列,也可以是線牲表.正確,都是線牲球結(jié)構(gòu),株和隊列其實是特殊的線牲表,對運算的定義略有不同而已?(x)5.株和鏈表是兩種不同的數(shù)據(jù)結(jié)構(gòu).錯,棧gi結(jié)構(gòu)的幡念,是特殊殊線性表,而鏈表是存儲結(jié)枷念,二者不是同類項。(x)6.期隊列崩錯,他們都是線性邏輯結(jié)構(gòu),棧和隊列其實g*的線性表,對運鼻的定義IHJ不同而巳。(V )7.棧和隊列的存ft方式既可M序方式,也可験接方式.(V )8.兩個棧共専一片連續(xù)內(nèi)存空間時,為提高內(nèi)存利用率,減少溢出機(jī)會,成把兩個株的株底分別設(shè)在這片內(nèi)砂間的兩虬(x)9.隊是一種插入與■啣作分別在哀的兩岫行的線性S,是一種先進(jìn)后出型結(jié)構(gòu)。錯,后半句不對.(x)10.f株的輸入序列是12345,則棧的輸出序列不可能是12345.錯,有可能。三、單項選擇題(毎小題1分,共20分)(B)1.棧中元素的誑出應(yīng)曜A.A.先進(jìn)先岀 B.后誑先出 C.??談t誑D.棧滿則出(c)2.若已知f桟的入桟序列是1,2,3,…,n,其輸出序列為pl,p2,p3,…,pn,若pl=n,MpiftA.iB.n=iC.n-i+1D.不確解釋:當(dāng)pl=n,即nJM先出棧的,根據(jù)桟的原理,n必定是■后入棧的(?%上題目巳經(jīng)那么輜入岫{淀是1,2,3,…,n,則出棧的序列是n,…,3,2,1.(若不要求順序出橫,則輸出序列不確定)(B)3.對定一個棧ST(■多元素為mO)為空的條件是A.ST->top<>0B.ST->top=0C?ST->topomOD.ST->top=mO(A)4,判定列QU(最多元素為mO)為満隊列的條件JKA?QU->rear-QU->front==mOB.QU->rear-QU->front-1==mOC?QU->front==QU->rear D?QU->front==QU->rear+l解:隊満條件]■元素個數(shù)為mO.由于約定満隊時隊首指針與隊甩指針相差1,所以不必再械1了選A.當(dāng)然,KE確隣砲,即:QU->front==(QU->rear+l)%mO(D)5.ttfflQ[n]用 隊列,f為當(dāng)削隊列 ,r為隊Ji元素的位■,假定隊列中元素的個數(shù)小于n,計鼻隊列中元素的公式為(A)r-f;(B)(n+f-r)%n;(C)n+r-fi(D)(n+r-f)%n6.

a2、a3和a4,對他們朝齣成?作.Si&ffisKm.酬時,按al酬時,按al、a2、a3.a4 假瞳隊啣始現(xiàn)要進(jìn)行的棧操作兩次,出株一次,再瞄兩次,出株一次;這時,第一次出棧得到的Tawa,Mzaaaas?7aKaba;類旳,夸癇這四1??^?遊行的隊操作是進(jìn)隊兩次,出隊一次,再誑隊兩次,出隊一次;這時,第一次出隊御到的元素?c,第二《出隊得到的同是d?經(jīng)操作后,最后在株中或隊中的無素還有E個.A~D:?al?a2 ③a3?a4E:?1 ?2 @3 ?0答:ABCDE=2f 4,1,2,2從供選擇的答案中,選岀成91入下面敘述 ? 內(nèi)的H切的解答,把相應(yīng)鑼號寫在答卷的對成欄內(nèi).棧是T*棧是T*線性表,它的特點J_.1A[L...,n]來裏示f棧,A[n]為isettJS,用?SBE?T指示當(dāng)IN棧頂位■,AE排諏元素。住桟中推入(PUSH)fWSSise素時,變從梯中強(qiáng)出(POP)fMW,變?T的?L£_? WHAHWa,b,c,經(jīng)HPUSH,POP,PUSH,PUSH,POP"后,從棧中彈出標(biāo)素的序列是D,3UT的(ME.答案:A:③先進(jìn)先出②后進(jìn)先出④出優(yōu)鈾⑤B,C:①加1??o⑤加2?W2D:?a,b?bfc?c,a④b,a ⑤cfb⑥a(cE:?n+1 ?n+2③n④n-1 ⑤n-2答案:ABCDE=2,2,1,6,4注意,向地址的高繩生長,稱為向上生成堆棧;向地址低it生長叫向下生成堆棧,本題中底部為n,旳地址的低嶼誠生成,稱為向下生成堆株.8.從供癇的答案中,選出成塩入下闡敘述?內(nèi)的■熾切的解答,把相皿■號寫在答??對雎內(nèi).在時,轉(zhuǎn)判別CM否A ;在旳?3?時,別敝否B當(dāng)棧中元素為n個,例進(jìn)棧運算時發(fā)生上溫,則說明該棧的陽濬岫C為了増加內(nèi)存蝕的利用軻I減少謚岀的可能性,由兩個梯共専一片連續(xù)的內(nèi)存空何時,瞄兩棧的D分別設(shè)在這片內(nèi)存空間的兩■,這樣,只有當(dāng)E時,才產(chǎn)生上3L爵:③上溢C:?n-l?SK③臉?OS?SK③臉?OSe:①兩個snajie:①兩個snaji同時的中心點??臻g的中心點③兩個的集④兩個aw不空且f棧誦一答案:ABCDE=2,1,2,4f3四.筒答題(毎小題4分,共20分)說明線牲表、棧與隊的鼻同點.答:相同點:都是線性結(jié)構(gòu),都是圜1結(jié)構(gòu)的?(念.都可以用順序存儲或鏈表存儲;株和隊列是兩種特殊的線性哀,即受限的線性哀,只是對插入.■除運剛a以限制.

不同點:不同,線性寰為ia機(jī)存取,而榭1只允許在插人■除運算,因而是后進(jìn)先出?UFO;隊列是只允許在TK^B入、另Tl^jOI除運H,因而是先進(jìn)先出表FIFO.?用途不同,堆棧用于子程廈用和保護(hù)現(xiàn)場,隊列用于多道作業(yè)處珥掲令將存及其他運算99.設(shè)■■號為1,2,3,4的四輛列車,誑入f聞結(jié)構(gòu)的車站,具體寫出這四輛列車開出車站的所有可能的《??答:至少有14種.?全進(jìn)之后再出?全進(jìn)之后再出111況,只有1種:4,3,2,1遊3個之后再出的情況,有3種,3,4,2,1遊2個之后再出的慵況,有5種,2,4,3丄遊1個之后再出的It況,有5種,1,4,3,2324,13,2,1,423A12,1,3,42,1,432,3,1,41,3,2,41.3A2L2,3,41,2,433.假設(shè)正讀和反讀都相同齡符序列労'回文”例如,’abba'和'abcba'是回文,’abcde'和'ababab'則不H回文.假設(shè)一字符序列巳存入計鼻機(jī),it分析用線性表、瞄和隊列等方式正琳輸出其回文的可能性?答:線性表是隨《存箱,可以實現(xiàn),1KS環(huán)變■(j-)從表尾開始打印.出;雄棧是后進(jìn)先岀,也可以實現(xiàn),IKEWAS.逆序?qū)鐥?;隊列是先進(jìn)先出,不易實現(xiàn).0R4■方式?好,要具體備況具體分析.若正文在機(jī)內(nèi)已是1■序存儲,別用線性裝從后往前溯8即可,或捋堆棧検頂開到瞄末用,然后車接用POP動作實風(fēng)(但堆棧是先減后..??..)若正文JK單鏈哀形式存儲,則等同于隊列,lit開輔助空間,可以從鏈■開始入棧,全部壓入后再依次輸岀.隊的“假溢出”是怎樣產(chǎn)生的?如何知i?aw隊列jk還是満?答:一?的一sas組隊列的是掲針已也了瞄的上界,不能再有入隊操作,但其?敬爼中還有空位■,這就叫"假溢出采用編環(huán)隊列出的曜另外,解決隊満隊空的辦法有三:?設(shè)?f布爾變■以區(qū)別隊滿還是隊空;浪費1版?的空間,用于區(qū)別隊滿圖■隊空.使用f+?器記錄隊列中元察個數(shù)(即隊列長an翔們常采用法②,即隊頭指針、隊n擂針中有—mb向?qū)嵲?,而另—M8向空閑元素。判斷循環(huán)隊列建:f=rear :f=(r+l)%N設(shè)?|環(huán)隊列的容■為40(序號從。到39),現(xiàn)經(jīng)過一系列的入隊和出隊運鼻后,有?front=ll,rear=19;②front=19,rear=ll; ,il環(huán)隊列中各有?》^少?答:用隊列長度計鼻公式:(N+r-f)%N?L=(40+19-ll)%40=8 ②L=(40+11-19)%40=32瓦閱讀理解(毎小H5分,共20分.至少要寫出思踣)1.寫岀下列程序段跳出結(jié)果(棧的元素類型SEIemType*char'voidmain(){StackS;Charx,y;InitStack(S);X='c'妙;Push(S,x);Push(S/a');Push(S,y);Pop(S,x);Push(S/t);Push(S,x);Pop(S,x);Push(S/s');while(!StackEmpty(S))(Pop(S,y);printf(y);};Printf(x);}答:輸出為"stack”.2.?]導(dǎo)岀下列程序股的輸岀結(jié)果(隊列中的元素類型QEIemType為char\voidmain()(QueueQ;InitQueue(Q);Charx=fe';y='c';EnQueue(Q/h');EnQueue(Q/f);EnQueue(Q,y);DeQueue(Q,x);EnQueue(Qx);DeQueue(Q,x);EnQueue(Q,*a*);while(!QueueEmpty(Q))(DeQueue(Qy);printf(y);};Printf(x);答:輸出為"char”.3.IB述以下II法的功IB(株和隊列的元素類型均為gvoidalgo3(Queue&Q)(StackS;intd;InitStack(S);while(!QueueEmpty(Q)){DeQueue(Qd);Push(S,d);};while(!StackEmpty(S))(Pop(S,d);EnQueue(Qd);})答:該鼻法的功能建:利用瞄瞄助,捋隊列中的數(shù)據(jù)元素誑行逆六.鼻法設(shè)計(毎小題5分,共15分.至少要寫出思路)1.假設(shè)fttfflsqMm]存放備環(huán)隊列的元為若妻使這m個分到利用,則需另f標(biāo)志tag,以tag為?;?來區(qū)分IHitt和頭微HK相同時隊列的狀態(tài)是"空”還是*試疆寫相應(yīng)的入隊和出隊的鼻法.解:這就是解決隊満隊空的三種辦法之①設(shè)布爾變■以區(qū)別隊満還黑隊空(其他兩*見簡SH);思路:TH&隊空,設(shè)tag=O,若從rearTMO到與front指針相同時,表示入隊巳満,M令tag=l;S/Afront-MfinSJ與rear指針相同時,M$tag=O,表示岀隊已空.2.試寫fU法判別讀入的f以@枷R符的字符序列是否是“回文”.答:編程如下:intPalindrom.Test。/冽別輸入的字符串是否回文序列,M返回L否則返回0(InitStack(S);InitQueue(Q);while((c=getcharO)!=,@*)(Push(S,c);EnQueue(Q,c);//raB?用株和隊列兩種結(jié)構(gòu)}while(!StackEmpty(S))(Pop(Sfa);DeQueue(Q,b));if(a!=b)returnERROR;}returnOK;}//Palindrome_Test第三章特殊線表習(xí)題一、選擇題1、若用單鏈表來表示隊列,則應(yīng)該選用A、帶尾指針的非循環(huán)鏈表B、帶尾指針的循環(huán)鏈表C、帶頭指針的非循環(huán)鏈表D、帶頭指針的循環(huán)鏈表2、若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)rear和front的值分別為0和3。當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別是 。A、1和5 B、2和4C、4和2 D、5和13、 設(shè)棧的輸入序列為1、2、3、4,則不可能是其出棧序列。A、1243B、2134C、1432D、4312E、32144、 已知一算術(shù)表達(dá)式的中綴形式為A+B*C-D/E,后綴形式為ABC*+DE/-,其前綴形式為oA、-A+B*C/DEB、-A+B*CD/EC、-+*ABC/DE D、-+A*BC/DE5、 設(shè)棧的輸入序列是1、2、…、n,若輸出序列的第一個元素是n,則第i個輸出元素是。A、不確定 B、n-i+1 C、iD、n-i6、 假定一個順序循環(huán)隊列的隊首和隊尾指針分別用front和rear表示,則判隊空的條件是。A、front+l==rearB>front==rear+lC、front==0D、front=rear7、假定一個順序循環(huán)隊列存儲于數(shù)組A[n]中,其隊首和隊尾指針分別用front和rear表示,則判斷隊滿的條件是oA^(rear-1)%n~frontB、(rear+1)%n=frontC^rear==(front-1)%nD、rear==(front+l)%n

8、 一個棧的的輸入序列為12345,則下列序列中不可能是棧的輸出序列的是 。A、23415B、54132C、23145D、154329、 若一個棧的輸入序列是1、2、3、…、n,輸出序列的第一個元素是i,則第i個輸出元素是。A、i-j-1 B、i-jC、j-i+1 D、不確定10、用單鏈表表示的鏈?zhǔn)疥犃械年狀^在鏈表的 位置。A、鏈頭 B、鏈尾C、鏈中11、設(shè)計一個判別表達(dá)式中左、右括號是否配對出現(xiàn)的算法,釆用數(shù)據(jù)結(jié)構(gòu)最佳。A、線性表的順序存儲結(jié)構(gòu)B、隊列C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)D、棧12、在下列算法描述中,涉及到隊運算的算法是DA、表達(dá)式求值算法B、深度優(yōu)先搜索C、二叉樹遍歷D、廣度優(yōu)先搜索13、棧的插入和刪除操作在進(jìn)行。A、棧頂 B、棧底C、任意位置 D、指定位置14、在一個順序循環(huán)隊列中,隊首指針指向隊首元素的 位置。A、前一個 B、后一個C、當(dāng)前 D、最后15、當(dāng)利用大小為N的數(shù)組存儲順序循環(huán)隊列時,該隊列的最大長度為A、N-2 B

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論