




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 3 章 特殊線性表?xiàng)?、?duì)列和串(2005-07-14) -第 3 章 特殊線性表?xiàng)?、?duì)列和串 課后習(xí)題講解1. 填空 設(shè)有一個(gè)空棧,棧頂指針為1000H,現(xiàn)有輸入序列為1、2、3、4、5,經(jīng)過push , push , pop, push , pop, push , push后,輸岀序列是(),棧頂指針為()?!窘獯稹?23, 1003H 棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是( );其判定棧空的條件分別是( ),判定棧滿的條件分別 是( )。【解答】順序存儲(chǔ)結(jié)構(gòu)和鏈接存儲(chǔ)結(jié)構(gòu)(或順序棧和鏈棧),棧頂指針top= -1和top=NULL,棧頂指針 top 等于數(shù)組的長度和內(nèi)存無可用空間3()可作為實(shí)現(xiàn)
2、遞歸函數(shù)調(diào)用的一種數(shù)據(jù)結(jié)構(gòu)。【解答】?!痉治觥窟f歸函數(shù)的調(diào)用和返回正好符合后進(jìn)先岀性。 表達(dá)式 a*(b+c)-d 的后綴表達(dá)式是( )。【解答】 abc+*d-【分析】 將中綴表達(dá)式變?yōu)楹缶Y表達(dá)式有一個(gè)技巧: 將操作數(shù)依次寫下來, 再將算符插在它的兩個(gè)操作數(shù)的后面。 棧和隊(duì)列是兩種特殊的線性表,棧的操作特性是(),隊(duì)列的操作特性是( ),棧和隊(duì)列的主要區(qū)別在于()?!窘獯稹亢筮M(jìn)先岀,先進(jìn)先岀,對(duì)插入和刪除操作限定的位臵不同 循環(huán)隊(duì)列的引入是為了克服( )?!窘獯稹考僖鐚?數(shù)組 Qn 用來表示一個(gè)循環(huán)隊(duì)列, front 為隊(duì)頭元素的前一個(gè)位臵, rear 為隊(duì)尾元素的位臵, 計(jì)算隊(duì)列中元素個(gè)數(shù)
3、的公式為( )。page: 2The Home of jetmambo - 第 3 章 特殊線性表?xiàng)?、?duì)列和串【解答】( rear-front+n ) % n【分析】也可以是(rear-front ) % n,但rear-front的結(jié)果可能是負(fù)整數(shù),而對(duì)一個(gè)負(fù)整數(shù)求模,其結(jié)果在不同的編譯器環(huán)境下可能會(huì)有所不同。用循環(huán)鏈表表示的隊(duì)列長度為n,若只設(shè)頭指針,則岀隊(duì)和入隊(duì)的時(shí)間復(fù)雜度分別是()和( )?!窘獯稹縊 ,O (n)【分析】在帶頭指針的循環(huán)鏈表中,岀隊(duì)即是刪除開始結(jié)點(diǎn),這只需修改相應(yīng)指針;入隊(duì)即是在終端結(jié)點(diǎn)的后面 插入一個(gè)結(jié)點(diǎn),這需要從頭指針開始查找終端結(jié)點(diǎn)的地址。 串是一種特殊的線性表
4、,其特殊性體現(xiàn)在()。【解答】數(shù)據(jù)元素的類型是一個(gè)字符 兩個(gè)串相等的充分必要條件是( )。【解答】長度相同且對(duì)應(yīng)位臵的字符相等【分析】例如"abc"工"abc ",“abc"工"bca"。2. 選擇題若一個(gè)棧的輸入序列是1,2, 3,,n,輸岀序列的第一個(gè)元素是n,則第i個(gè)輸岀元素是()。A 不確定 B n-i C n-i-1 D n-i+1【解答】 D【分析】此時(shí),輸岀序列一定是輸入序列的逆序。 設(shè)棧S和隊(duì)列C的初始狀態(tài)為空,元素 el、e2、e3、e4、e5、e6依次通過棧S, 一個(gè)元素岀棧后 即進(jìn)入隊(duì)列Q若6個(gè)元素岀隊(duì)
5、的順序是 e2、e4、e3、e6、e5、el,則棧S的容量至少應(yīng)該是()。A 6B 4C 3D 2【解答】 C【分析】 由于隊(duì)列具有先進(jìn)先岀性, 所以, 此題中隊(duì)列形同虛設(shè), 即岀棧的順序也是 e2、 e4、 e3、e6、 e5、 e1 。 一個(gè)棧的入棧序列是 1 ,2,3,4,5,則棧的不可能的輸岀序列是()。A 54321 B 45321 C 43512 D 12345【解答】 C【分析】 此題有一個(gè)技巧: 在輸岀序列中任意元素后面不能岀現(xiàn)比該元素小并且是升序(指的是元素的序號(hào))的兩個(gè)元素。page: 3The Home of jetmambo - 第 3 章 特殊線性表?xiàng)?、?duì)列和串 設(shè)計(jì)
6、一個(gè)判別表達(dá)式中左右括號(hào)是否配對(duì)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳A 順序表 B 棧 C 隊(duì)列 D 鏈表【解答】 B 【分析】每個(gè)右括號(hào)與它前面的最后一個(gè)沒有匹配的左括號(hào)配對(duì),因此具有后進(jìn)先岀性。 在解決計(jì)算機(jī)主機(jī)與打印機(jī)之間速度不匹配問題時(shí)通常設(shè)臵一個(gè)打印緩沖區(qū),該緩沖區(qū)應(yīng)該是一個(gè)( )結(jié)構(gòu)。A棧B隊(duì)列C數(shù)組D線性表【解答】 B【分析】先進(jìn)入打印緩沖區(qū)的文件先被打印,因此具有先進(jìn)先岀性。 一個(gè)隊(duì)列的入隊(duì)順序是1,2,3,4,則隊(duì)列的輸岀順序是()。A 4321 B 1234 C 1432 D 3241【解答】 B【分析】隊(duì)列的入隊(duì)順序和岀隊(duì)順序總是一致的。 棧和隊(duì)列的主要區(qū)別在于( )。A 它們的
7、邏輯結(jié)構(gòu)不一樣 B 它們的存儲(chǔ)結(jié)構(gòu)不一樣C 所包含的運(yùn)算不一樣 D 插入、刪除運(yùn)算的限定不一樣【解答】 D【分析】 棧和隊(duì)列的邏輯結(jié)構(gòu)都是線性的, 都有順序存儲(chǔ)和鏈接存儲(chǔ), 有可能包含的運(yùn)算不一樣, 但不是主要區(qū)別,任何數(shù)據(jù)結(jié)構(gòu)在針對(duì)具體問題時(shí)包含的運(yùn)算都可能不同。設(shè)數(shù)組Sn作為兩個(gè)棧S1和S2的存儲(chǔ)空間,對(duì)任何一個(gè)棧只有當(dāng)Sn全滿時(shí)才不能進(jìn)行進(jìn)棧操作。為這兩個(gè)棧分配空間的最佳方案是()。A S1的棧底位臵為0, S2的棧底位臵為n-1B S1的棧底位臵為0, S2的棧底位臵為n/2C S1的棧底位臵為0,S2的棧底位臵為nD S1的棧底位臵為0,S2的棧底位臵為1【解答】A【分析】兩棧共享空
8、間首先兩個(gè)棧是相向增長的,棧底應(yīng)該分別指向兩個(gè)棧中的第一個(gè)元素的位臵,并注意C+沖的數(shù)組下標(biāo)是從0開始的。 設(shè)有兩個(gè)串p和q,求q在p中首次岀現(xiàn)的位臵的運(yùn)算稱作()。A連接B模式匹配C求子串D求串長【解答】Bpage: 4The Home of jetmambo - 第3 章 特殊線性表?xiàng)?、?duì)列和串3. 判斷題 有n個(gè)元素依次進(jìn)棧,則岀棧序列有(n-1)/2種。2【解答】錯(cuò)。應(yīng)該有 -' 種。棧可以作為實(shí)現(xiàn)過程調(diào)用的一種數(shù)據(jù)結(jié)構(gòu)。【解答】對(duì)。只要操作滿足后進(jìn)先岀性,都可以采用棧作為輔助數(shù)據(jù)結(jié)構(gòu)。 在棧滿的情況下不能做進(jìn)棧操作,否則將產(chǎn)生“上溢”?!窘獯稹繉?duì)。 在循環(huán)隊(duì)列中,front指
9、向隊(duì)頭元素的前一個(gè)位臵,rear指向隊(duì)尾元素的位臵,則隊(duì)滿的條件是 fron t=rear ?!窘獯稹垮e(cuò)。這是隊(duì)空的判定條件,在循環(huán)隊(duì)列中要將隊(duì)空和隊(duì)滿的判定條件區(qū)別開。空串與空格串是相同的?!窘獯稹垮e(cuò)??沾拈L度為零,而空格串的長度不為0,其長度是串中空格的個(gè)數(shù)。4. 設(shè)有一個(gè)棧,元素進(jìn)棧的次序?yàn)锳,B,C,D, E,能否得到如下出棧序列,若能,請(qǐng)寫出操作序列,若不能,請(qǐng)說明原因。 C , E, A, B, D C , B, A, D, E【解答】不能,因?yàn)樵?C、E出棧的情況下,A定在棧中,而且在 B的下面,不可能先于 B岀棧 可以,設(shè)I為進(jìn)棧操作,0為入棧操作,則其操作序列為HI000I
10、0I0。5. 舉例說明順序隊(duì)列的“假溢岀”現(xiàn)象?!窘獯稹考僭O(shè)有一個(gè)順序隊(duì)列,如圖3-6所示,隊(duì)尾指針rear=4,隊(duì)頭指針front=1 ,如果再有元素入隊(duì),就會(huì)產(chǎn)生“上溢”,此時(shí)的“上溢”又稱為“假溢岀”,因?yàn)殛?duì)列并不是真的溢岀了,存儲(chǔ)隊(duì)列的數(shù)組 中還有2個(gè)存儲(chǔ)單元空閑,其下標(biāo)分別為 0和13-6順序肚列的同溢岀page: 5The Home of jetmambo - 第3 章 特殊線性表?xiàng)?、?duì)列和串6.在操作序列 push、push(2)、pop、push(5)、push(7)、pop、push(6)之后,棧頂元素和棧 底元素分別是什么? ( push(k)表示整數(shù)k入棧,pop表示棧頂
11、元素岀棧。)【解答】棧頂元素為 6,棧底元素為1。其執(zhí)行過程如圖3-7所示。入棧f7625511I(a) push (1 r push (2)fb) pop r> pushC?)何 pop j push 棧的執(zhí)行過程示意團(tuán)7.在操作序列 EnQueue(1)、EnQueue(3)、DeQueue、EnQueue(5)、EnQueue7)、DeQueue EnQueue(9)之后,隊(duì)頭元素和隊(duì)尾元素分別是什么?( EnQueue(k)表示整數(shù)k入隊(duì),DeQueue表示隊(duì)頭元素岀隊(duì))【解答】隊(duì)頭元素為 5,隊(duì)尾元素為9。其執(zhí)行過程如圖3-8所示。(ai) EnQueue (1) jEnQue
12、ne Gi(b) DeQueue *EnQueuie C5) jEnQueue 0)(c) DeQueue jEnQueue (?)®3-3趴列的執(zhí)行過程示意圖8空串和空格串有何區(qū)別?串中的空格符有何意義?空串在串處理中有何作用?【解答】不含任何字符的串稱為空串,其長度為零。僅含空格的串稱為空格串,它的長度為串中空格符的個(gè)數(shù)。串中的空格符可用來分隔一般的字符,便于人們識(shí)別和閱讀,但計(jì)算串長時(shí)應(yīng)包括這些空格符。空串在串處理中可作為任意串的子串。9. 算法設(shè)計(jì) 假設(shè)以不帶頭結(jié)點(diǎn)的循環(huán)鏈表表示隊(duì)列,并且只設(shè)一個(gè)指針指向隊(duì)尾結(jié)點(diǎn),但不設(shè)頭指針。試設(shè)計(jì)相應(yīng)的入隊(duì)和岀隊(duì)的算法?!窘獯稹繉珀?duì)操作是
13、在循環(huán)鏈表的頭部進(jìn)行,相當(dāng)于刪除開始結(jié)點(diǎn),而入隊(duì)操作是在循環(huán)鏈表的尾部進(jìn)行,相當(dāng)于在終端結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)。由于循環(huán)鏈表不帶頭結(jié)點(diǎn),需要處理空表的特殊情況。 入隊(duì)算法如下:縉環(huán)隊(duì)別入隊(duì)算法Enqueuetemplate <c3ass T>void Enqueue(Node<T> 嚀ear, T 盟)s=new NddxTn,S">daU=xJif Create FULL) 誡t理空表的特殊情況rear=s, rear->nesi=s;dse "處理除空表以外的一般情況s - >next=rcar- >nesrt;rear-&
14、gt;next=s;rearms,)岀隊(duì)算法如下:循環(huán)隊(duì)列出 隊(duì)算法 Dequeue template <class T>T Dequeue (Node<T> *reai)if (rear= =NULL) throw unclerflow", 妙|斷表空 dse if Cs=rear)rcar-NULLr熾表中只有一平結(jié)點(diǎn)else rear->nezt=s->n毗delete s; 設(shè)順序棧S中有2n個(gè)元素,從棧頂?shù)綏5椎脑匾来螢閍2n,a2n-1,al,要求通過一個(gè)循環(huán)隊(duì)列重新排列棧中元素,使得從棧頂?shù)綏5椎脑匾来螢閍2n,a2n-2,a2,
15、a2n-1,a2n-3,al,請(qǐng)?jiān)O(shè)計(jì)算法實(shí)現(xiàn)該操作,要求空間復(fù)雜度和時(shí)間復(fù)雜度均為0(n)?!窘獯稹坎僮鞑襟E為: 將所有元素岀棧并入隊(duì); 依次將隊(duì)列元素岀隊(duì),如果是偶數(shù)結(jié)點(diǎn),則再入隊(duì),如果是奇數(shù)結(jié)點(diǎn),則入棧; 將奇數(shù)結(jié)點(diǎn)岀棧并入隊(duì); 將偶數(shù)結(jié)點(diǎn)岀隊(duì)并入棧; 將所有元素岀棧并入隊(duì); 將所有元素岀隊(duì)并入棧即為所求。用順序存儲(chǔ)結(jié)構(gòu)存儲(chǔ)串 S,編寫算法刪除S中第i個(gè)字符開始的連續(xù)j個(gè)字符?!窘獯稹肯扰袛啻甋中要?jiǎng)h除的內(nèi)容是否存在,若存在,則將第 i+j-1之后的字符前移j個(gè)位臵 算法如下:串刪除算法Delvoid Del (char S, int i, intj)傲組0號(hào)單元存放串的長度(if G+j
16、<SO)(for (kM;k<S0,k+) 購=S圈dsecout<<" 數(shù)非法", 對(duì)于采用順序存儲(chǔ)結(jié)構(gòu)的串S,編寫一個(gè)函數(shù)刪除其值等于ch的所有字符?!窘獯稹繌暮笙蚯皠h除值為ch的所有元素,這樣所有移動(dòng)的元素中沒有值為ch的元素,能減少移動(dòng)元素的次數(shù),提高算法的效率。算法如下:申刪徐站Ed*void Del (char STctach) 熾姐的0號(hào)單元存戲串的長屋for (i=S0I;i>0J)if (Si=三ch) for(j+lj<=S0;j+)SD'1-SDL級(jí)葉;)對(duì)串的模式匹配KM算法設(shè)計(jì)求模式滑動(dòng)位臵的next函數(shù)
17、。【解答】參見325學(xué)習(xí)自測(cè)及答案1 在一個(gè)具有n個(gè)單元的順序棧中,假定以地址低端(即下標(biāo)為0的單元)作為棧底,以top作為棧頂指針,當(dāng)出棧時(shí),top的變化為()。page: 7The Home of jetmambo - 第3 章 特殊線性表?xiàng)?、?duì)列和串A 不變 B top=0; C top=top-1; D top=top+1;【解答】C2.個(gè)棧的入棧序列是a, b, c, d, e,則棧的不可能的岀棧序列是()。A edcba B cdeba C debca D abcde【解答】C3從棧頂指針為top的鏈棧中刪除一個(gè)結(jié)點(diǎn),用x保存被刪除結(jié)點(diǎn)的值,則執(zhí)行()。A x=top; top=t
18、op->n ext; B x=top->data;C top=top->n ext; x=top->data; D x=top->data; top=top->n ext;【解答】D4 設(shè)元素1, 2, 3, P, A依次經(jīng)過一個(gè)棧,進(jìn)棧次序?yàn)?23PA在棧的輸岀序列中,有哪些序列可作為C+程序設(shè)計(jì)語言的變量名?!窘獯稹縋A321, P3A21, P32A1, P321A, AP3215.設(shè) S="l_ am_ a_ teacther",其長度為()?!窘獯稹?56 對(duì)于棧和隊(duì)列,無論它們采用順序存儲(chǔ)結(jié)構(gòu)還是鏈接存儲(chǔ)結(jié)構(gòu),進(jìn)行插入和刪除操
19、作的時(shí)間 復(fù)雜度都是()°【解答】O7 如果進(jìn)棧序列為 A、B、C、D,則可能的岀棧序列是什么?答:共14種,分別是:ABCD ABDC ACBD ACDB ADCB BACD BADC BCAD BCDA BDCA CBAD CBDA CDBA DCBA8 簡述隊(duì)列和棧這兩種數(shù)據(jù)結(jié)構(gòu)的相同點(diǎn)和不同點(diǎn)。【解答】相同點(diǎn):它們都是插入和刪除操作的位臵受限制的線性表。不同點(diǎn):棧是限定僅在表尾進(jìn)行插入和刪除的線性表,是后進(jìn)先岀的線性表,而隊(duì)列是限定在表的一端進(jìn)行插入,在另一端進(jìn)行刪除的線性表,是先進(jìn)先出的線性表。9. 利用兩個(gè)棧S俐S2模擬一個(gè)隊(duì)列,如何利用棧的運(yùn)算實(shí)現(xiàn)隊(duì)列的插入和刪除操作,請(qǐng)簡述算 法思想?!窘獯稹坷脙蓚€(gè)棧S1和 S2模擬一個(gè)隊(duì)列,當(dāng)需要向隊(duì)列中插入一個(gè)元素時(shí),用S1來存放已輸入的元素,即通過page: 8The Home of jetmambo - 第3 章 特殊線性表?xiàng)?、?duì)列和串向棧S1執(zhí)行入棧操作來實(shí)現(xiàn);當(dāng)需要從隊(duì)列中刪除元素時(shí),則將S1中元素全部送入到S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國電腦鼠標(biāo)行業(yè)深度研究及發(fā)展前景投資評(píng)估分析
- 2025至2030中國電機(jī)控制中心行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國現(xiàn)場(chǎng)服務(wù)管理(FSM)行業(yè)市場(chǎng)深度研究及發(fā)展前景投資可行性分析報(bào)告
- 教育文化傳承與實(shí)踐成效研究
- 牛類養(yǎng)殖培訓(xùn)課件
- 智慧城市背景下智能家居化學(xué)品的環(huán)境影響分析
- 新時(shí)代的情感智能培養(yǎng)策略研究
- 醫(yī)療教育中基于大數(shù)據(jù)的個(gè)性化培訓(xùn)模式研究
- 智慧醫(yī)療的崛起線上醫(yī)療咨詢的新趨勢(shì)
- 學(xué)習(xí)環(huán)境對(duì)學(xué)習(xí)動(dòng)機(jī)的塑造作用
- 燃料電池行業(yè)發(fā)展分析及投資前景預(yù)測(cè)研究報(bào)告2025-2028版
- 2025年 珠海市市直專職人民調(diào)解員招聘筆試考試試卷附答案
- 2025年 物業(yè)管理師三級(jí)考試練習(xí)試題附答案
- 肺動(dòng)脈高壓講課件
- 呼吸困難的識(shí)別與護(hù)理
- 2024年滁州市機(jī)電工程學(xué)校招聘筆試真題
- 2025至2030中國大蔥產(chǎn)品行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展趨勢(shì)與投資報(bào)告
- 廣東省深圳市南山區(qū)2025年小升初數(shù)學(xué)模擬試卷含解析
- 小學(xué)三到六年級(jí)全冊(cè)單詞默寫(素材)-2023-2024學(xué)年譯林版(三起)小學(xué)英語
- GB/T 620-2011化學(xué)試劑氫氟酸
- 1997年浙江高考理科數(shù)學(xué)真題及答案
評(píng)論
0/150
提交評(píng)論