楚雄师范学院计科系2011级《算法与数据结构》课后习题及参考答案(第3章)

更新时间:2023-10-21 15:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网络工程2011级1班、计算机科学与技术2011级2班《算法与数据结构》课后习题(第3章)

【课后习题】第3章 栈和队列

2011级 计科 (网工) 班 学号: 姓名:

总分 题 号 得 分 一 二 三 四 五 一、填空题(每空1.5分,共27 分)

1. 栈可以看成一种运算受限制的线性表,也称为 的线性表 2. 栈中允许进行插入和删除的一端为 。

3. 队列可以看成一种运算受限制的线性表,也称为 的线性表。 4. 队列中允许进行插入的一端为 ,允许进行删除的一端为 。 5. 设循环队列的空间大小为

MAX,当

rear

时,队列的长度

为 。

6. 设循环队列的容量为50(序号从0到49),现经过一系列的入队和出队运算后,有front=27,

rear=11,问在这种情况下,循环队列中有 个元素。如果front=11,rear=27,问在这种情况下,循环队列中有 个元素。

7. 中缀表达式(B+D) * (A-C) 对应的前缀表达式是 ,后缀表达式

是 。

8. 后缀表达式ABC+* 对应的前缀表达式是 ,中缀表达式是 。 9. 线性表、栈和队列都是线性结构,可以在线性表的 位置插入和删除元素;栈只能

在 插入和删除元素;队列只能在 插入和 删除元素。 10. 在栈顶指针为head的链式栈中,判定栈空的条件是 。

11. 设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈

顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为 二、单项选择(请将正确答案的代号填写在下表对应题号下面。每题1.5分,共33分)

题号 答案 题号 答案

1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 20 10 21 11 22 第 1 页 共 5 页

网络工程2011级1班、计算机科学与技术2011级2班《算法与数据结构》课后习题(第3章)

1、栈是限定在( )处进行插入或删除操作的线性表。 A.端点 B.栈底 C.栈顶 D.中间 2、在栈顶一端可进行的全部操作是( )。

A.插入 B.删除 C.插入和删除 D.进栈

3、4个元素按A、B、C、D顺序连续进S栈,进行Pop(S,x)运算后,x的值是( )。 A.A B.B C.C D.D 4、栈的特点是( )。

A.先进先出 B.后进先出 C.后进后出 D.不进不出 5、在栈的实现方法中,需要考虑栈满的是( )。

A、循环链表栈; B、链式栈; C、无限栈; D、顺序栈。 6、将一个递归算法改写成非递归的形式时,一般( )。

A、只能采用栈结构; B、只能采用队列结构; C、采用非栈结构更好; D、可采用栈或非栈结构。 7、在C语言中实现队列时,为了避免使用循环队列,采用( )来实现较好。

A、动态分配的一维数组; B、静态分配的一维数组; C、二维数组; D、链式队列。 8、实现循环队列时,可采用( )。

A、动态分配的一维数组; B、静态分配的一维数组; C、二维数组; D、链式队列。 9、4个元素进S栈的顺序是A、B、C、D,进行两次Pop(S,x)操作后,栈顶元素的值是( )。 A)A B)B C)C D)D 10、顺序栈存储空间的实现使用( )存储栈元素。

A.链表 B.数组 C.循环链表 D.变量

11、一个栈的输入序列为1 2 3 4 5,则下列序列中可能是栈的输出序列的是( ) A) 2 3 514 B) 4 15 2 3 C) 5 4 1 3 2 12、栈与一般线性表的区别主要在( )方面。

A.元素个数 B.元素类型 C.逻辑结构 D.插入、删除元素的位置 13、元素A、B、C、D依次进顺序栈后,栈底元素是( )。 A)A B)B C)C D)D 14、经过下列栈的运算后,X的值是( )。

InitStack (S); Push(S,’a’); Push(S,’b’); GetTop(S); Pop(S,X);

A.a B.b C.1 D.2

D) 1 5 4 3 2

第 2 页 共 5 页

网络工程2011级1班、计算机科学与技术2011级2班《算法与数据结构》课后习题(第3章)

15、正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是( ) 。

A. top不变 B. top←0 C. top←top+1 D. top←top-1 16、队列限定在( )处进行插入操作。

A.端点 B.队头 C.队尾 D.中间

17、4个元素A、B、C、D顺序连续进队Q,队尾元素的值是( )。 A)A B)B C)C D)D 18、队列的特点是( )。

A.先进先出 B.后进先出 C.先进后出 D.不进不出 19、循环队列占用的空间( )。

A.必须连续 B.可以不连续 C.不能连续 D.不必连续 20、一个循环队列一旦说明,其占用空间的大小( )。

A.不能固定 B.可以改变 C.已固定 D.动态变化 21、循环队列Sq是空队列的条件是( )。

A.Sq.rear= =Sq.front B.(Sq.rear+1)%maxsize= =Sq.front C.Sq.rear= =0 D.Sq.fronr= =0 22、循环队列Sq是满队列的条件是( )。

A.Sq.rear= =Sq.front B.(Sq.rear+1)%maxsize= =Sq.front C.Sq.rear= =0 D.Sq.fronr= =0

三、算法设计(请将答案填在下表对应位置,每空2分,共24分) 第1题 ① ② ② ② ② ③ ③ ③ ③ 第2题 ① 第3题 ① 第4题 ① 1.假设称正读和反读都相同的字符序列为“回文”,例如,“abcddcba”、 “qwerewq”是回文,“ashgash”不是回文。是写一个算法判断读入的一个以‘@’为结束符的字符序列是否为回文。

第 3 页 共 5 页

网络工程2011级1班、计算机科学与技术2011级2班《算法与数据结构》课后习题(第3章)

int Palindrome_Test(){

InitStack(S);InitQueue(Q); while((c=getchar())!='@')

{ Push(S,c);EnQueue(Q, ① ); } while(② ) { Pop(S,a);DeQueue(Q,b));

if(③ ) return ERROR; }

return OK;

}//Palindrome_Test

2、已知栈的顺序存储结构如下定义:

# define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 typedef struct{

SElemType *base;SElemType *top;int stacksize; }SqStack;

请完成如下入栈算法:

status Push(SqStack&S,SElemType e){

if(① ){

tbase=(SElemType*)realloc(S.base

(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!tbase) exit(OVERFLOW);

S.base=tbase;S.tops=S.base+S.stacksize-1;S.stacksize+=STACKINCREMENT;

}

② ;③ ; return OK; }// Push

3、已知循环队列定义如下:

# define MAXQSIZE 100 typedef struct{

QElemType *base;int front;int rear; }SqQueue;

请完成如下出队算法:

status DnQueue(SqQueue&Q,QElemType &e){

if(① )return ERROR;

② ;③ ;return OK; }// DnQueue

第 4 页 共 5 页

网络工程2011级1班、计算机科学与技术2011级2班《算法与数据结构》课后习题(第3章)

4. 向循环队列 q 的队尾加入一个元素 e

Status EnQueue(SqQueue &q, QElemType e)

{ if (① = = q.front ) return ERROR ; //队满则上溢,无法再入队 q.base [② ] = e;

q.rear = ③ ; return OK; }// EnQueue;

四、阅读理解题:简述以下算法的功能(每小题5分,共10分) (1)

int unknow1(SeqStack S) 1.该函数的功能是: {int n=0;

while(!EmptyStack(&S)) {Pop(&S); n++; } return n; } (2)

void algo3(Queue &Q){ Stack S; int d; InitStack(S);

while(!QueueEmpty(Q)){ DeQueue (Q,d); Push(S,d); };

while(!StackEmpty(S)){ Pop(S,d); EnQueue (Q,d); } }

五、名词解释(每题3分,共6分) 1、栈:

2、队列:

2. 该函数的功能是:

第 5 页 共 5 页

本文来源:https://www.bwwdw.com/article/ylgf.html

Top