栈和队列习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• • • • • • • • • • • • • • • • • • •
A.rear=(rear+1)%(n+1) B.front=(front+1)% n C.rear=(rear+1)% n D.front=(front+1)%(n+1) 13、一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是( )。 A.5 4 3 2 1 B.4 5 3 2 1 C. 4 3 5 1 2 D.1 2 3 4 5 14、栈是限定在( )处进行插入或删除操作的线性表。 A.端点 B.栈底 C.栈顶 D.中间 15、容量是10的循环队列的队头位置q->front为2,则队的第一个数据元素的位置是( ) A.2 B.3 C.1 D.0 16、循环队列的出队操作是( ) A. q->front=(q->front+1)%maxsize; B.q->front=q->front+1; C.q->rear=(q->rear+1)%maxsize; D.q->rear=q->rear+1; 17、当循环队列q是满队列时,存放队列元素的数组data有n个元素,则data中存放 ( )个数据元素。 A.n B.n-1 C.n-2 D.0 18、以下哪一个不是队列的基本运算( )。 A.从队尾插入一个新元素 B.从队列中删除第i个元素 C.判断一个队列是否为空 D.读取队头元素的值 19、从栈顶指针为top的链栈中删除一个结点,并将被删除结点的值保存到x中,其操 作步骤为( )。 A.x=top->data;top=top->next B.top=top->next;x=top>data; C.x=top;top=top->next D.x=top->data;
• • • • • • • • • •
判断题: 1、循环队列中无上溢现象。 ( ) 2、循环队列只有下溢,没有上溢。 ( ) 3、对顺序栈而言,在栈满状态,如果此时再作进栈运算,则会发生“下 溢”。 ( ) 4、顺序队列和循环队列的队满和队空的条件是一样的。 ( ) 5、为解决队列“假满”问题,可以采用循环数组实现队列存储。 ( ) 6、队列是后进先出表。 ( ) 7、栈是后进先出表。 ( ) 四、应用题: 设有一个栈,元素进栈的次序为A,B,C,D,E,写出下列出栈序列的 操作序列。(1)CBADE(2)ACBED,其中I为进栈操作,O为出栈操 作。
• • • • • • • • • • •
二、填空题: 1、循环队列用数组data[m]存放其元素值,已知其头、尾指针分别是front和 rear,则当前队列中元素的个数是( )。 2、栈顶的位置是随着( )操作而变化的。 3、假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行 一系列栈操作SSXSXSSXXX之后,得到的输出序列为( )。 4、队列的队尾位置随着( )而变化。 5、在( )的情况下,链队列的出队操作需要修改尾指针。 6、从栈顶指针为top的链栈中删除一个结点,并将被删除的结点的值保存在x 中,其操作步骤为( );top=top->next;。 7、用数组A[m]来存放循环队列q的元素,且它的头、尾指针分别为front和 rear,队列满足条件(q.rear+1)%m==q.front,则队列中当前的元素个数为 ( )。 8、顺序栈s存储在数组s->data[max]中,对s进行出栈操作,执行的语句序列 是( )。 9、以下运算实现在循环队列中的初始化操作 void initqueue(seqqueue *q){q->front=0;( );}
20、在一个链队列中,若f,r分别为队首、队尾指针,则插入s 所指结点的操作为( )。 A.f->next=s;f=s B.r->next=s;r=s; C.s->next=r;r=s; D.s->next=f;f=s 21、循环队列的入队操作应为( )。 A.q->rear=q->rear+1;q->data[q->rear]=x; B.q->data[q->rear++]=x; C.q->rear=(q->rear+1)%maxsize;q->data[q->rear]=x; D.q->data[q->rear]=x;q->rear=(q->rear+1)%maxsize; 22、栈和队列都是( )。 A.限制存取点的线性结构 B.限制存取 点的非线性结构 C.顺序存储的线性结构 D.链式存储的线性 结构 23、实现递归调用属于( )的应用。 A.队列 B.栈 C. 数 D.树
• • • • • • • • • • • • • • • • •
6、对于一个栈,给定输入序列为1,2,3,则下列不可能为输出序列的是 ( ) A.1,2,3 B.3,2,1 C.3,1,2 D.2,1,3 7、在链接队列执行入队操作( ) A.需判别队是否空 B.需判别队是否满 C.限制在链表头p进行 D.限制在链表尾p进行 8、以下不属于栈的基本运算是( )。 A.删除栈顶元素 B.删除栈底元素 C.判断栈是否为空 D.将栈置为空栈 9、一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。 A.e,d,c,b,a B.d,e,c,b,a C.d,c,e,a,b D.a,b,c,d,e 10、设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数 据结构最佳。 A.线性表的顺序存储结构 B.栈 C.队列 D.线性表的链式存储结构 11、循环队列的特点之一是不会产生( )。 A.上溢出 B.下溢出 C.队满 D.假溢出 12、设数组Data[n]作为循环队列Q的存储空间,front为队头指针,rear为队
栈和队列
• • • • • • • • • • • • • • • • 一、选择题 1、循环队列是空队列的条件是( ) A.Q - > rear = = Q - > front B.(Q - > rear + 1)%maxsize = = Q - > front C.Q - > rear = = 0 D.Q - > front = = 0 2、链栈与顺序栈相比,比较明显的优点是( ) A.插入操作更加方便 B.删除操作更加方便 C.不会出现下溢的情况 D.不会出现上溢的情况 3、若一个栈的输入序列是1,2,3,……,n,输出序列的第一个元素是n, 则第i个输出元素是( ) A.n - i B.n – i + 1 C.i D.不确定 4、栈与一般线性表的区别主要在( ) A.元素个数 B.元素类型 C.逻辑结构 D.插入、删除元素的位置 5、一个链栈的栈顶指针是top,则执行出栈操作时(栈非空),用x保存被删除结 点,则执行( ) A.x = top;top = top - > next; B.x = top - > data; C.top = top - > next;x = top - > data; D.x = top - > data;top = top - > next;
• 2、如果编号为1、2、3的三辆列车进入一 个栈式结构的站台,那么可能得到的三辆 列车出站序列有哪些?不可能出现的序列 是什么? • 五来自百度文库程序设计题: • 1、写出循环队列入队操作的函数。
相关文档
最新文档