收藏 分销(赏)

栈与队列习题与答案.doc

上传人:天**** 文档编号:4350374 上传时间:2024-09-11 格式:DOC 页数:36 大小:129.50KB
下载 相关 举报
栈与队列习题与答案.doc_第1页
第1页 / 共36页
栈与队列习题与答案.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述
一 选择题 1. 对于栈操作数据得原则就是( )。【青岛大学 2001 五、2(2分)】 A. 先进先出 B、 后进先出 C、 后进后出 D、 不分顺序 2、 在作进栈运算时,应先判别栈就是否( ① ),在作退栈运算时应先判别栈就是否( ② )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈得最大容量为( ③ )。蘇脑篳绉劊錾钥。 为了增加内存空间得利用率与减少溢出得可能性,由两个栈共享一片连续得内存空间时,应将两栈得 ( ④ )分别设在这片内存空间得两端,这样,当( ⑤ )时,才产生上溢。攝窮劑趕檳缦綰。 ①, ②: A、 空 B、 满 C、 上溢 D、 下溢 ③: A、 n-1 B、 n C、 n+1 D、 n/2 ④: A、 长度 B、 深度 C、 栈顶 D、 栈底 ⑤: A、 两个栈得栈顶同时到达栈空间得中心点、 B. 其中一个栈得栈顶到达栈空间得中心点、 C. 两个栈得栈顶在栈空间得某一位置相遇、 D. 两个栈均不空,且一个栈得栈顶到达另一个栈得栈底、 【上海海运学院 1997 二、1(5分)】【上海海运学院 1999 二、1(5分)】 3、 一个栈得输入序列为123…n,若输出序列得第一个元素就是n,输出第i(1<=i<=n)个元素就是( )。阕吕郦贮訛颁驼。 A. 不确定 B、 n-i+1 C、 i D、 n-i 【中山大学 1999 一、9(1分)】 4、 若一个栈得输入序列为1,2,3,…,n,输出序列得第一个元素就是i,则第j个输出元素就是( )。 A. i-j-1 B、 i-j C、 j-i+1 D、 不确定得 【武汉大学 2000 二、3】 5、 若已知一个栈得入栈序列就是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN就是n,则pi就是( )。浔携殲橼倆趋惧。 A. i B、 n-i C、 n-i+1 D、 不确定 【南京理工大学 2001 一、1(1、5分)】 6、 有六个元素6,5,4,3,2,1 得顺序进栈,问下列哪一个不就是合法得出栈序列?( ) A. 5 4 3 6 1 2 B、 4 5 3 1 2 6 C、 3 4 6 5 2 1 D、 2 3 4 1 5 6瑤闯檣飾诿轿諫。 【北方交通大学 2001 一、3(2分)】 7、 设栈得输入序列就是1,2,3,4,则( )不可能就是其出栈序列。【中科院计算所2000一、10(2分)】禿詵骀荛濒鄭撫。 A. 1,2,4,3, B、 2,1,3,4, C、 1,4,3,2, D、 4,3,1,2, E、 3,2,1,4, 8、 一个栈得输入序列为1 2 3 4 5,则下列序列中不可能就是栈得输出序列得就是( )。 A. 2 3 4 1 5 B、 5 4 1 3 2 C、 2 3 1 4 5 D、 1 5 4 3 2 【南开大学 2000 一、1】【山东大学 2001 二、4 (1分)】【北京理工大学 2000 一、2(2分)】詿碜嗫齡顯铢鑄。 9、 设一个栈得输入序列就是 1,2,3,4,5,则下列序列中,就是栈得合法输出序列得就是( )。 A. 5 1 2 3 4 B、 4 5 1 3 2 C、 4 3 1 2 5 D、 3 2 1 5 4 【合肥工业大学 2001 一、1(2分)】 10、 某堆栈得输入序列为a, b,c ,d,下面得四个序列中,不可能就是它得输出序列得就是( )。 A. a,c,b,d B、 b, c,d,a C、 c, d,b, a D、 d, c,a,b 【北京航空航天大学 2000 一、3(2分)】【北京邮电大学 1999 一、3(2分)】 11、 设abcdef以所给得次序进栈,若在进栈操作时,允许退栈操作,则下面 得不到得序列为( )。 A.fedcba B、 bcafed C、 dcefba D、 cabdef 【南京理工大学 1996 一、9(2分)】 12、 设有三个元素X,Y,Z顺序进栈(进得过程中允许出栈),下列得不到得出栈排列就是( )。 A.XYZ B、 YZX C、 ZXY D、 ZYX 【南京理工大学 1997 一、5(2分)】 13、 输入序列为ABC,可以变为CBA时,经过得栈操作为( )【中山大学 1999 一、8(1分)】鸽斋摟试伛怄饿。 A. push,pop,push,pop,push,pop B、 push,push,push,pop,pop,pop諍滟癤摳鏘埘確。 C、 push,push,pop,pop,push,pop D、 push,pop,push,push,pop,pop玺剑崗鼴擔澱熾。 14、 若一个栈以向量V[1、、n]存储,初始栈顶指针top为n+1,则下面x进栈得正确操作就是( )。鳟滦锬苹滥橱戧。 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帅讎環递邺賒绩。 【南京理工大学 1998 一、13(2分)】 15、 若栈采用顺序存储方式存储,现两栈共享空间V[1、、m],top[i]代表第i个栈( i =1,2)栈顶,栈1得底在v[1],栈2得底在V[m],则栈满得条件就是( )。纭詢耧冪斕驿锇。 A. |top[2]-top[1]|=0 B、 top[1]+1=top[2] C、 top[1]+top[2]=m D、 top[1]=top[2]撵荆齔栌镫贤貸。 【南京理工大学 1999 一、14(1分)】 16、 栈在( )中应用。【中山大学 1998 二、3(2分)】 A. 递归调用 B、 子程序调用 C、 表达式求值 D、 A,B,C 17、 一个递归算法必须包括( )。【武汉大学 2000 二、2】 A. 递归部分 B、 终止条件与递归部分 C、 迭代部分 D、终止条件与迭代部分 18、 执行完下列语句段后,i值为:( )【浙江大学 2000 一 、6 (3分)】 int f(int x) { return ((x>0) ? x* f(x-1):2);} int i ; i =f(f(1)); A.2 B、 4 C、 8 D、 无限递归 19、 表达式a*(b+c)-d得后缀表达式就是( )。【南京理工大学 2001 一、2(1、5分)】 A.abcd*+- B、 abc+*d- C、 abc*+d- D、 -+*abcd 20、 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈与算符栈为( ),其中^为乘幂 。溈脔嬈罴獵皱續。 A. 3,2,4,1,1;(*^(+*- B、 3,2,8;(*^- C、 3,2,4,2,2;(*^(- D、 3,2,8;(*^(-鲨閂獪齬凱鷺銜。 【青岛大学 2000 五、5(2分)】 21、 设计一个判别表达式中左,右括号就是否配对出现得算法,采用( )数据结构最佳。 A.线性表得顺序存储结构 B、 队列 C、 线性表得链式存储结构 D、 栈 【西安电子科技大学 1996 一、6(2分)】 22、 用链接方式存储得队列,在进行删除运算时( )。【北方交通大学 2001 一、12(2分)】 A. 仅修改头指针 B、 仅修改尾指针 C、 头、尾指针都要修改 D、 头、尾指针可能都要修改 23、 用不带头结点得单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时( )。【北京理工大学 2001 六、3(2分)】笾凫脑塤詳镆繅。 A.仅修改队头指针 B、 仅修改队尾指针 C、 队头、队尾指针都要修改 D、 队头,队尾指针都可能要修改 24、 递归过程或函数调用时,处理参数及返回地址,要用一种称为( )得数据结构。 A.队列 B.多维数 组 C.栈 D、 线性表 【福州大学 1998 一、1(2分)】 25、 假设以数组A[m]存放循环队列得元素,其头尾指针分别为front与rear,则当前队列中得元素个数为( )。【北京工商大学 2001 一、2(3分)】薊诞钹覷溫边抛。 A.(rear-front+m)%m B.rear-front+1 C.(front-rear+m)%m D.(rear-front)%m龇谵鯇駒缴习鴉。 26、 循环队列A[0、、m-1]存放其元素值,用front与rear分别表示队头与队尾,则当前队列中得元素数就是( )。【南京理工大学 2001 一、5(1、5分)】隉荠銳蛏鯛贬蹣。 A. (rear-front+m)%m B、 rear-front+1 C、 rear-front-1 D、 rear-front鯤钦膾輥轭轄頜。 27、 循环队列存储在数组A[0、、m]中,则入队时得操作为( )。【中山大学 1999 一、6(1分)】畢媼閿龇堅颊紕。 A. rear=rear+1 B、 rear=(rear+1) mod (m-1) C、 rear=(rear+1) mod m D、 rear=(rear+1)mod(m+1) 28、 若用一个大小为6得数组来实现循环队列,且当前rear与front得值分别为0与3,当从队列中删除一个元素,再加入两个元素后,rear与front得值分别为多少?( )【浙江大学1999 四、1(4分)】恻綁腻齊銃揚灝。 A. 1与 5 B、 2与4 C、 4与2 D、 5与1 29、 已知输入序列为abcd 经过输出受限得双向队列后能得到得输出序列有( )。 A. dacb B、 cadb C、 dbca D、 bdac E、 以上答案都不对 【西安交通大学 1996 三、3 (3分)】 30、 若以1234作为双端队列得输入序列,则既不能由输入受限得双端队列得到,也不能由输出受限得双端队列得到得输出序列就是( )。【西安电子科技大学 1996 一、5(2分)】竊驴骞铑俨颡谍。 A. 1234 B、 4132 C、 4231 D、 4213 31、 最大容量为n得循环队列,队尾指针就是rear,队头就是front,则队空得条件就是 ( )。 A. (rear+1) MOD n=front B、 rear=front C.rear+1=front D、 (rear-l) MOD n=front 【南京理工大学 1999 一、16(2分)】 32、 栈与队列得共同点就是( )。【燕山大学 2001 一、1(2分)】 A. 都就是先进先出 B、 都就是先进后出 C、 只允许在端点处插入与删除元素 D、 没有共同点 33、 栈得特点就是( ① ),队列得特点就是( ② ),栈与队列都就是( ③ )。若进栈序列为1,2,3,4 则( ④ )不可能就是一个出栈序列(不一定全部进栈后再出栈);若进队列得序列为1,2,3,4 则( ⑤ )就是一个出队列序列。【北方交通大学 1999 一、1(5分)】荚畴辄颞袞魷缕。 ①, ②: A、 先进先出 B、 后进先出 C、 进优于出 D、 出优于进 ③: A、顺序存储得线性结构 B、链式存储得线性结构 C、限制存取点得线性结构 D、限制存取点得非线性结构 ④, ⑤: A、 3,2,1,4 B、 3,2,4,1 C、 4,2,3,1 D、 4,3,2,1 F、 1,2,3,4 G、 1,3,2,4庫欒叽螻巯閨鸩。 34、 栈与队都就是( )【南京理工大学 1997 一、3(2分)】 A.顺序存储得线性结构 B、 链式存储得非线性结构 C、 限制存取点得线性结构 D、 限制存取点得非线性结构 35、 设栈S与队列Q得初始状态为空,元素e1,e2,e3,e4,e5与e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队得序列就是e2,e4,e3,e6,e5,e1贱箦頻謀诟紼閼。 则栈S得容量至少应该就是( )。 A. 6 B、 4 C、 3 D、 2 【南京理工大学 2000 一、6(1、5分)】 36、 用单链表表示得链式队列得队头在链表得( )位置。【清华大学 1998 一、1(2分)】 A.链头 B.链尾 C.链中 37、 依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出得元素构成得序列就是以下哪些序列?【哈尔滨工业大学 2000 七(8分)】骯釁败數現寧伪。 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} 二 判断题 1. 消除递归不一定需要使用栈,此说法( ) 【中科院计算所 1998 二、2(2分)】【中国科技大学 1998 二、2(2分)】 2. 栈就是实现过程与函数等子程序所必需得结构。( )【合肥工业大学 2000 二、2(1分)】 3. 两个栈共用静态存储空间,对头使用也存在空间溢出问题。( )【青岛大学 2000 四、2(1分)】 4.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈得栈底分别设在这片内存空间得两端。( )【上海海运学院 1998 一、4(1分)】鶚偽牍鋟钣内缟。 5、 即使对不含相同元素得同一输入序列进行两组不同得合法得入栈与出栈组合操作,所得得输出序列也一定相同。( )【北京邮电大学 1999 二、4(2分)】蘭驽顰赵让嶧誒。 6、 有n个数顺序(依次)进栈,出栈序列有Cn种,Cn=[1/(n+1)]*(2n)!/[(n!)*(n!)]。( )驵羈婴啞輔學銼。 【北京邮电大学 1998 一、3(2分)】 7、 栈与队列就是一种特殊操作得线性表。( )【青岛大学 2001 四、3 (1分)】 8、 若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1、 ( ) 【上海海运学院1995 一、2(1分) 1997 一、3(1分)】 9、 栈与队列都就是限制存取点得线性结构。( )【中科院软件所 1999 六、(5)(2分)】 10.若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列1,5,4,6,2,3。( ) 【上海海运学院 1999 一、3(1分)】 11、 任何一个递归过程都可以转换成非递归过程。(  )【上海交通大学 1998一、3(1分)】 12、 只有那种使用了局部变量得递归过程在转换成非递归过程时才必须使用栈。(  ) 【上海交通大学 1998 一、4(1分)】 13、 队列就是一种插入与删除操作分别在表得两端进行得线性表,就是一种先进后出型结构。( ) 【上海海运学院 1998 一、3(1分)】 14、 通常使用队列来处理函数或过程得调用。( )【南京航空航天大学 1997 一、5(1分)】 15、 队列逻辑上就是一个下端与上端既能增加又能减少得线性表。( )【上海交通大学 1998 一、2】 16、 循环队列通常用指针来实现队列得头尾相接。( )【南京 航空航天大学 1996 六、1(1分)】 17、 循环队列也存在空间溢出问题。( )【青岛大学 2002 一、2 (1分)】 18、 队列与栈都就是运算受限得线性表,只允许在表得两端进行运算。( )【长沙铁道学院1997一、5(1分)】灏问銫謎瀋籪糝。 19、 栈与队列都就是线性表,只就是在插入与删除时受到了一些限制。( )【北京邮电大学2002一、3(1分)】鍵捣烂侖袭铙饬。 20、 栈与队列得存储方式,既可以就是顺序方式,又可以就是链式方式。( ) 【上海海运学院 1996 一、2(1分) 1999 一、2(1分)】 三 填空题 1.栈就是_______得线性表,其运算遵循_______得原则。【北京科技大学 1997 一、3】 2._______就是限定仅在表尾进行插入或删除操作得线性表。【燕山大学 1998 一、3 (1分)】 4. 一个栈得输入序列就是:1,2,3则不可能得栈输出序列就是_______。【中国人民大学2001一、1(2分)】說鄲订惩颼彌殤。 5. 设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列就是_______,而栈顶指针值就是_______H。设栈为顺序栈,每个元素占4个字节。【西安电子科技大学 1998 二、1(4分)】栾岚谏蔣暂轍坏。 6. 当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1空时,top[1]为_______,栈2空时 ,top[2]为_______,栈满时为_______。泶滄轨泼檻紈鐠。 【南京理工大学 1997 三、1(3分)】 6.两个栈共享空间时栈满得条件_______。【中山大学 1998 一、3(1分)】 7.在作进栈运算时应先判别栈就是否_(1)_;在作退栈运算时应先判别栈就是否_(2)_;当栈中元素为n个,作进栈运算时发生上溢,则说明该栈得最大容量为_(3)_。澀牍錠倀優觊晝。 为了增加内存空间得利用率与减少溢出得可能性,由两个栈共享一片连续得空间时,应将两栈得_(4)_分别设在内存空间得两端,这样只有当_(5)_时才产生溢出。【山东工业大学 1994 一、1(5分)】贪鱺应挤礬紹赖。 8、 多个栈共存时,最好用_______作为存储结构。【南京理工大学 2001 二、7(2分)】 9.用S表示入栈操作,X表示出栈操作,若元素入栈得顺序为1234,为了得到1342出栈顺序,相应得S与X得操作串为_______。【西南交通大学 2000 一、5】峤讫鯫绶谵馊謁。 10、 顺序栈用data[1、、n]存储数据,栈顶指针就是top,则值为x得元素入栈得操作就是_______。貴絞癭惊戀鈕鷴。 【合肥工业大学 2001 三、2 (2分)】 11.表达式23+((12*3-2)/4+34*5/7)+108/9得后缀表达式就是_______。【中山大学 1998 一、4(1分)】鲍尝险绚锻陨庙。 12、 循环队列得引入,目得就是为了克服_______。【厦门大学 2001 一、1 (14/8分)】 13.用下标0开始得N元数组实现循环队列时,为实现下标变量M加1后在数组有效下标范围内循环,可采用得表达式就是:M:=_______(填PASCAL语言,C语言得考生不填); M= _______(填C语銖惧扫瘪厩罷绕。 言,PASCAL语言得考生不填)。【西南交通大学 2000 一、7】 14.________又称作先进先出表。【重庆大学 2000 一、7】 15、 队列得特点就是_______。【北京理工大学 2000 二、2(2分)】 16.队列就是限制插入只能在表得一端,而删除在表得另一端进行得线性表,其特点就是_______。 【北方交通大学 2001 二、5】 17、 已知链队列得头尾指针分别就是f与r,则将值x入队得操作序列就是_______。 【合肥工业大学 2000 三、3(2分)】 18.区分循环队列得满与空,只有两种方法,它们就是______与______。【北京邮电大学2001 二、2(4分)】義謀選晖詣钣虛。 19.设循环队列用数组A[1、、M]表示,队首、队尾指针分别就是FRONT与TAIL,判定队满得条件为_______。闌嵘肮兗厂毀侠。 【山东工业大学 1995 一、1(1分)】 20、 设循环队列存放在向量sq、data[0:M]中,则队头指针sq、front在循环意义下得出队操作可表示为_______,若用牺牲一个单元得办法来区分队满与队空(设队尾指针sq、rear),则队满得条件为_______。暈闩鹽鲵熾謄轶。 【长沙铁道学院 1997 二、4 (4分)】 21.表达式求值就是_______应用得一个典型例子。【重庆大学 2000 一、10】 22.循环队列用数组A[0、、m-1]存放其元素值,已知其头尾指针分别就是front与rear ,则当前队列得元素个数就是_______。【厦门大学 2000 六、1(16%/3分)】蘺侣誨驺儷酈贊。 23.设Q[0、、N-1]为循环队列,其头、尾指针分别为P与R,则队Q中当前所含元素个数为_______。头驅輔沪饱遷潍。 【北京科技大学 1997 一、4】 24.完善下面算法。【中山大学 1998 四、2(6分)】 后缀表达式求值,表达式13/25+61得后缀表达式格式为: 13, 25/61, + FUNC compute(a):real; 后缀表达式存储在数组a[1、、m]中。 BEGIN setnull(s);i:=1;ch:= (1)______; WHILE ch<>’@’ DO BEGIN CASE ch OF ‘0’、、‘9’: x:=0; WHILE ch<>’,’DO BEGIN x:=x*10+ord(ch)-ord(‘0’); i:=i+1;ch:= (2)_______; END ‘+’: x:=pop(s)+pop(s); ‘-‘: x:=pop(s);x:=pop(s)-x; ‘*’: x:=pop(s)*pop(s); ‘/’: x:=pop(s);x:=pop(s)/x; ENDCASE push(s,x);i:=i+1;ch:=a[i]; END; comput:= (3)_______; END; 25、 算术表达式求值得流程,其中OPTR为算术符栈,OPND为操作数栈,precede(oper1,oper2)就是比较运算符优先级别得函数,operate(opnd1,oper,opnd2)为两操作数得运算结果函数。(#表示运算起始与终止符号)【西北工业大学 1999 六、2 (7分)】鸥疗塏饞皱兩厅。 FUNCTION exp_reduced:operandtype; INITSTACK(OPTR);PUSH(OPTR"#");INITSTACK(OPND);read(w);颚丛挡鎮锇争墊。 WHILE NOT((w='#’) AND (GETTOP(OPTR)='#')) DO飫顏试缆敌嗳祿。 IF NOT w in op THEN PUSH(OPND,w); ELSE CASE precede(GETTOP(OPTR),w)OF '<':[(1)_______; read(w);] '=':[(2)_______; read(w);]; '>':[theta:=POP(OPTR);b:=POP(OPND);a:=POP(OPND);(3)_______;]苎撈邺邇卖畬鉭。 ENDC; RETURN(GETTOP(OPND)); ENDF; 26.根据需要,用适当得语句填入下面算法得_______中: 问题:设有n件物品,重量分 别为w1,w2,w3,…,wn与一个能装载总重量为T得背包。能否从n件物品中选择若干件恰好使它们得重量之与等于T。若能,则背包问题有解,否则无解。解此问题得算法如下:邓榇圹濰净禄喬。 FUNCTION kanp_stack(VAR stack,w:ARRAY[1、、n] OF real; VAR top:integer; T:real):boolean;濃颁缵屆蠣轺讳。 {w[1:n] 存放n件物品得重量,依次从中取出物品放入背包中,检查背包重量,若不超过T,则装入,否则弃之,取下一个物品试之。若有解则返回函数值true,否则返回false}辦慘誰動缈枨粤。 BEGIN top:=0; i:=1; { i指示待选物品} WHILE (1)_______ AND(2)_______DO [IF (3)______ OR (4)_______ AND (i<n) THEN [top := (5)_______ ;stack[top] :=i;{第i件物品装入背包}呒谐镐涤鈾阗银。 T:=T-w[i]]; IF T=0 THEN RETURN ((6)_______) {背包问题有解} ELSE [IF (i=n ) AND (top>0) THEN [i:=(7)_______;{取出栈顶物品} top:= (8)_______ ;T:= (9)_______ ]; {恢复T值} i:=i+1 {准备挑选下一件物品} ]; ]; RETURN((10)_______) {背包无解} END; 【北京邮电大学 1996 四(10分)】 四 应用题 1. 名词解释:栈。【燕山大学 1999 一、1(2分)】【吉林工业大学 1999 一、3(2分)】 2. 名词解释:队列【大连海事大学 1996 一、6 ( 1分 )】 3. 什么就是循环队列?【哈尔滨工业大学 2001 三、2(3分)】【河南大学 1998 一、4(3分)】 4. 假设以S与X分别表示入栈与出栈操作,则对初态与终态均为空得栈操作可由S与X组成得序列表示(如SXSX)。屨籁態譯銦鈔陸。 (1)试指出判别给定序列就是否合法得一般规则。 (2)两个不同合法序列(对同一输入序列)能否得到相同得输出元素序列?如能得到,请举列说明。 【东南大学 1992 二(10分)】 5. 有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能得出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)得次序有哪几个?【西南交通大学 2000 二、1】楼選辦凄鮒钊剐。 6. 如果输入序列为1 2 3 4 5 6,试问能否通过栈结构得到以下两个序列:4 3 5 6 1 2与1 3 5 4 2 6;请说明为什么不能或如何才能得到。【武汉交通科技大学 1996 二、3 (3分)】幬钍邓紲无轹納。 7. 若元素得进栈序列为:A、B、C、D、E,运用栈操作,能否得到出栈序列B、C、A、E、D与D、B、A、C、E?为什么?【北京科技大学 1998 一、2】册現榮蝇諺義谱。 8. 设输入序列为a,b,c,d,试写出借助一个栈可得到得两个输出序列与两个不能得到得输出序列。 【北京科技大学 2001 一、4(2分)】 9. 设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗? 【山东师范大学 1996 五、4(2分)】 10. 试证明:若借助栈由输入序列1,2,…,n得到输出序列为P1,P2,…,Pn(它就是输入序列得一个排列),则在输出序列中不可能出现这样得情形:存在着i<j<k,使Pj<Pk<Pi。【上海交通大学 1998 二(15分)】缈没峡缙跷莹铁。 11. 设一数 列得输入顺序为123456,若采用堆栈结构,并以A与D分别表示入栈与出栈操作,试问通过入出栈操作得合法序列。纱會賜鷺滥檔艺。 (1) 能否得到输出顺序为325641得序列。(5分) (2) 能否得到输出顺序为154623得序列。(5分) 【北方交通大学 1995 一(10分)】 12. (1) 什么就是递归程序? (2) 递归程序得优、缺点就是什么? (3) 递归程序在执行时,应借助于什么来完成? (4) 递归程序得入口语句、出口语句一般用什么语句实现?【大连海事大学 1996二、4(4分)】 13. 设有下列递归算法: FUNCTION vol(n:integer):integer; VAR x :integer: BEGIN IF n=0 THEN vol:=0 ELSE BEGIN read(x);vol:=vol(n-1)+x;END; END; 如该函数被调用时,参数n值为4,读入得x值依次为5,3,4,2,函数调用结束时返回值vol为多少?用图示描述函数执行过程中,递归工作栈得变化过程。【北京工业大学 1998 四 (10分)】绣袅絞烬礫濾錠。 14. 当过程P递归调用自身时,过程P内部定义得局部变量在P得2次调用期间就是否占用同一数据区?为什么?【山东师范大学 1999 一、4 (4分)】硷沖舻瓯瞒蕷哑。 15. 试推导出当总盘数为n得Hanoi塔得移动次数。 【北京邮电大学 2001 四、3 (5分)】 16. 对下面过程写出调用P(3)得运行结果。 PROCEDURE p(w:integer); BEGIN IF w>0 THEN BEGIN p(w-1); writeln(w);{输出W} p(w-1) END; END; 【西北大学 2001 三、7】 17. 用一个数组S(设大小为MAX)作为两个堆栈得共享空间。请说明共享方法,栈满/栈空得判断条件,并用C或PASCAL设计公用得入栈操作push(i,x),其中i为0或1,用于表示栈号,x为入栈值。鈥钾儐絞剎滎纜。 【浙江大学 1998 五、2 (7分)】 18. 简述下列程序段得功能。 PROC algo(VAR S : stack; k:integer); VAR T: stack; temp: integer; WHILE NOT empty(S) DO [temp:=POP(S); IF temp<>k THEN PUSH(T,temp)];鏵袞誘儐胫秽灭。 WHILE NOT empty(T) DO [temp:=POP(T);PUSH(S,temp)]; 【山东科技大学 2002 一、1(4分)】 19. 用栈实现将中缀表达式8-(3+5)*(5-6/2)转换成后缀表达式,画出栈得变化过程图。 【南京航空航天大学 2001 五 (10分)】 20. 在表达式中,有得运算符要求从右到左计算,如A**B**C得计算次序应为(A**(B**C)),这在由中缀生成后缀得算法中就是怎样实现得?(以**为例说明)【东南大学1993一、2(6分) 1997一、1(8分)】沩讧猕围詬芗锶。 21. 有递归算法如下: FUNCTION sum (n:integer):intger; BEGIN IF n=0 THEN sum:=0 ELSE BEGIN read(x);sum:=sum(n-1)+x END; END; 设初值n=4,读入 x=4,9,6,2 问:(1) 若x为局部变量时;该函数递归结束后返回调用程序得sum=? 并画出在递归过程中栈状态得变化过程;蓝鲦鋨铵輇领鑲。 (2) 若x为全程变量递归结束时返回调用程序得sum=?【北京邮电大学 1997 一 (10分)】 22. 画出对算术表达式A-B*C/D-E↑F求值时操作数栈与运算符栈得变化过程。 【 东南大学2000一、3(6分)】 23. 计算算术表达式得值时,可用两个栈作辅助工具。对于给出得一个表达式,从左向右扫描它得字符,并将操作数放入栈S1中,运算符放入栈S2中,但每次扫描到运算符时,要把它同S2得栈顶运算符进行优先级比较,当扫描到得运算符得优先级不高于栈顶运算符得优先级时,取出栈S1得栈顶与次栈顶得两个元素,以及栈S2得栈顶运算符进行运算将结果放入栈S1中(得到得结果依次用T1、T2等表示)。为方便比较,假设栈S2得初始栈顶为?(?运算符得优先级低于加、减、乘、除中任何一种运算)。现假设要计算表达式: A-B*C/D+E/F。写出栈S1与S2得变化过程。【山东科技大学 2001 一、4 (7分)】懲涛饉挟懨当東。 24. 有字符串次序为3*-y-a/y^2,利用栈,给出将次序改为3y-*ay2^/-得操作步骤。(可用X代表扫描该字符串过程中顺序取一个字符进栈得操作,用S代表从栈中取出一个字符加入到新字符串尾得出栈操作。例如,ABC变为BCA得操作步骤为XXSXSS)【东北大学 2001 一、4 ( 4分)】鑑飕謎谫锟橢狮。 25. 内存中一片连续空间(不妨假设地址从1到m)提供给两个栈S1与S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。【东北大学 2000 一、1 (3分)】鈴剛弪鹬骗誣圣。 26. 将两个栈存入数组V[1、、m]应如何安排最好?这时栈空、栈满得条件就是什么?【东南大学1998一、5】 27. 在一个算法中需要建立多个堆栈时可以选用下列三种方案之一,试问:这三种方案之间相比较各有什么优缺点? (1)分别用多个顺序存储空间建立多个独立得堆栈; (2)多个堆栈共享一个顺序存储空间; (3)分别建立多个独立得链接堆栈。【北京航空航天大学 1998 一、6(4分)】 28.在某程序中,有两个栈共享一个一维数组空间SPACE[N]、SPACE[0]、SPACE[N-1] 分别就是两个栈得栈底。鰱鐘纹轾鳔紇鯉。 (1)对栈1、栈2,试分别写出(元素x)入栈得主要语句与出栈得主要语句。 (2)对栈1、栈2,试分别写出栈满、栈空得条件。【北京理工大学 1999 二、2(8分)】 29、 简述顺序存储队列得假溢出得避免方法及队列满与空得条件。【山东大学 2000 一、2 (4分)】脓觋餘连讵滩妇。 30、 举例说明顺序队得“假溢出”现象,并给出解决方案。【福州大学 1998 三、5 (6分)】 31、 怎样判定循环队列得空与满?【燕山大学 1999 二、3(4分)】 32、 简要叙述循环队列得数据结构,并写出其初始状态、队列空、队列满时得队首指针与队尾指针得值。 【南京航空航天大学 1995 七(5分)】 33、 利用两个栈sl,s2模拟一个队列时,如何用栈得运算实现队列得插入,删除以及判队空运算。请简述这些运算得算法思想。【北京邮电大学 1992 一、1】【东南大敘纭駛爛渎韞搶。 学 1999 一、1 (7分)】 34.一个循环队列得数据结构描述如下: TYPE sequeuetp=RECORD elem:ARRAY[1、、MAXSIZE] OF elemtp; front,rear:0、、MAXSIZE; END; 给出循环队列得队空与队满得判断条件,并且分析一下该条件对队列实际存储空间大小得影响,如果为了不损失存储空间,您如何改进循环队列得队空与队满得判断条件?【西北工业大学 1999 三 (8分)】惮渾橼刪层櫪侪。 35、 如果用一个循环数组q[0、、m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,而改置计数器count用以记录队列中结点得个数。磽髕辦奧魴渌剛。 (1)编写实现队列得三个基本运算:判空、入队、出队(3分) (2)队列中能容纳元素得最多个数就是多少?(1分)【东北大学 2002 一、1】 36、 给出循环队列中元素个数得计算式(设队最大长度为N,队首指针FRONT,队尾指针REAR) 【西北大学 2000 二、7 (5分)】 37、 顺序队列一般应该组织成为环状队列得形式,而且一般队列头或尾其中之一应该特殊处理。例如,队列为listarray[0、、n-1],队列头指针为 front,队列尾指针为 rear, 则listarray [rear]表示下一个可以插入队列得位置。请解释其原因。【北京大学 1999 一、3 (20/3分)】魚冲賈泾摟適嬷。 38、 设一个双端队列,元素进入该队列得次序为a,b,c,d。求既不能由输入受限得双端队列得到,又不能由输出受限得双端队列得到得输出序列。【中山大学 1999 一、4 (3分)】扰锁凉戰鲰艷锚。 39、 若以1、2、3、4作为双端队列得输入
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服