数据结构1800题-错题集-第三章
數(shù)據(jù)結(jié)構(gòu)1800刷題😁錯題集
序號標題為解答,引用為題目和答案
入棧:1——n-i+1——n
輸出:P1——Pi——Pn
出棧:n——n-i+1——1
若已知一個棧的入棧序列是1,2,3,? ,n,其輸出序列為p1,p2,p3,?, pN,若pN 是n,則
pi 是( D ) 。
A. i B. n-i C. n-i+1 D. 不確定
若一個棧以向量V[1…n] 存儲,初始棧頂指針top 為n+1,則下面x 進棧的正確操作是
( C )。
A. top:=top+1; V [top]:=x B. V [top]:=x; top:=top+1
C. top:=top-1; V [top]:=x D. V [top]:=x; top:=top-1
若棧采用順序存儲方式存儲, 現(xiàn)兩棧共享空間V[1…m] ,top[i] 代表第i 個棧( i =1,2) 棧頂,
棧1 的底在v[1] ,棧2 的底在V[m] ,則棧滿的條件是( B )。
A. |top[2]-top[1]|=0 B. top[1]+1=top[2] C. top[1]+top[2]=m D. top[1]=top[2]
表達式a*(b+c)-d 的后綴表達式是( B )。【南京理工大學(xué)2001 一、2(1.5 分)】
A.abcd*± B. abc+d- C. abc+d- D. -+*abcd
鏈接:https://www.nowcoder.com/questionTerminal/3a42f706132940218436b70cc9d32227
來源:牛客網(wǎng)
一、準備兩個棧:操作數(shù)棧s1,運算符棧s2。
二、從【左至右】掃描表達式:32^(4+22-63)-5;
遵循的原則是: 遇到操作數(shù)入s1棧;若遇到運算符c,則需要與s2的棧頂 字符c2進行優(yōu)先級比較;
《1》若c > c2,則c入棧;
《2》若c < c2,則c2退棧,并將s1棧頂?shù)膬蓚€元素退棧與操作符一起運算,將結(jié)果入s1棧;
(1)操作數(shù)3,入棧s1;
(2)運算符,入棧s2;
(3)操作數(shù)2,入棧s1;
(4)運算符^ ,入棧s2;(理由是:^的優(yōu)先級 高于 的優(yōu)先級)
(5)運算符(,直接入s2;
(6)操作數(shù)4,入棧s1;
(7)運算符+,入棧s2;(理由是:( 后面的運算符直接入棧)
(8)…數(shù)2,入棧s1;
(9)…符,入棧s2;(理由是:的優(yōu)先級 高于 +的優(yōu)先級)
(10)…數(shù)2,入棧s1;
(11)…符 -,(由于 -的優(yōu)先級低于)s2的棧頂字符 * 出棧,并完成22=4的運算,將結(jié)果4存入s1中;—s1:3,2,4,4;
(由于 -的優(yōu)先級低于+)s2的棧頂字符+出棧,并完成4+4=8的運算,將結(jié)果8存入s1中;—s1:3,2,8;
此時,- 成為了(后的運算符,則直接入棧s2;—s2:^(-;
(12)…數(shù)6;
表達式3* 2^(4+22-63)-5 求值過程中當掃描到6 時,對象棧和算符棧為( ),其中^
為乘冪。
A. 3,2,4,1,1 ; (^(+-
B. 3,2,8 ; (^-
C. 3,2,4,2,2; (^(-
D. 3,2,8 ; (*^(-
2> 當隊列只有一個節(jié)點時,該節(jié)點既是頭又是尾,如果head==tail 則需要修改尾指針將隊列置空。
用鏈接方式存儲的隊列,在進行刪除運算時( D )。
A. 僅修改頭指針
B. 僅修改尾指針
C. 頭、尾指針都要修改
D. 頭、尾指針可能
都要修改
用不帶頭結(jié)點的單鏈表存儲隊列時,其隊頭指針指向隊頭結(jié)點,其隊尾指針指向隊尾結(jié)點,則在進行刪除操作時( D )。【北京理工大學(xué)2001 六、3(2 分)】
A.僅修改隊頭指針
B. 僅修改隊尾指針
C. 隊頭、隊尾指針都要修改
D. 隊頭,隊尾指針都可能要修改
假設(shè)以數(shù)組A[m] 存放循環(huán)隊列的元素,其頭尾指針分別為front 和rear,則當前隊列中的
元素個數(shù)為( A )。【北京工商大學(xué)2001 一、2(3 分)】
A.(rear-front+m)%m
B.rear-front+1
C.(front-rear+m)%m
D.(rear-front)%m
循環(huán)隊列存儲在數(shù)組 A[0…m] 中,則入隊時的操作為 ( D )。
A. rear=rear+1
B. rear=(rear+1) mod (m-1)
C. rear=(rear+1) mod m
D. rear=(rear+1)mod(m+1)
最大容量為 n 的循環(huán)隊列,隊尾指針是 rear,隊頭是 front,則隊空的條件是 ( B )。
A. (rear+1) MOD n=front
B. rear=front
C.rear+1=front
D. (rear-l) MOD n=front
1.隊空條件:rear==front
2.隊滿條件:(rear+1) %QueueSIze==front,其中QueueSize為循環(huán)隊列的最大長度
3.計算隊列長度:(rear-front+QueueSize)%QueueSize
4.入隊:(rear+1)%QueueSize
5.出隊:(front+1)%QueueSize
依次讀入數(shù)據(jù)元素序列 {a,b,c, d,e,f, g}進棧 ,每進一個元素,機器可要求下一個元素進棧或彈棧, 如此進行, 則棧空時彈出的元素構(gòu)成的序列是以下哪些序列? (A D)
A.{d ,e,c,f,b,g,a} B. {f ,e,g,d,a,c,b}
C. {e,f,d,g,b, c,a} D. {c ,d,b,e,f,a, g}
兩個棧共用靜態(tài)存儲空間,對頭使用也存在空間溢出問題。 ( V )
當兩個棧共享一存儲區(qū)時, 棧利用一維數(shù)組 stack(1,n)表示,兩棧頂指針為 top[1] 與 top[2] ,則當棧 1 空時, top[1] 為0,棧 2 空時 ,top[2] 為n+1,棧滿時為 top[1] + 1 = top[2]。
多個棧共存時,最好用 鏈式存儲作為存儲結(jié)構(gòu)
循環(huán)隊列的引入,目的是為了克服 假溢出時候,避免移動大量元素
區(qū)分循環(huán)隊列的滿與空,只有兩種方法,它們是 設(shè)標記和犧牲一個存儲單元。
應(yīng)用題后續(xù)附上
總結(jié)
以上是生活随笔為你收集整理的数据结构1800题-错题集-第三章的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SSM+家装管理系统 毕业设计-附源码1
- 下一篇: VB程序设计教程(第四版)龚沛曾-实验8