文档介绍:第三章栈和队列一、填空 1. 向量、栈和队列都是()结构,可以在向量的( )位置插入和删除元素; 对于栈只能在() 插入和删除元素; 对于队列只能在() 插入和删除元素。 2. 向栈顶指示器为 top 的顺序栈压入元素的操作是( )。 3. 在一个循环队列中,队首指针指向( )。 4. 在具有 n 个单元的循环队列中,队满时共有( )个元素。 5. 一个栈的输入序列是 1,2,3,4,5 , 而栈的输出序列为 1,2,3,4,5 , 则数据入栈和出栈过程为( )。 6. 用一个长度为 max 的数组 S 作为栈的顺序存储结构, 变量 tp 为栈指示器,当 tp=0 时,表示栈( ) ;当 tp= () ,表示栈满。 7. 栈的插入和删除只能在栈的顶端进行,后进栈的元素必定先被删除, 所以又把栈称作()表; 队列的插入和删除运算分别在两端进行, 进行插入的一端叫(), 进行删除的一端叫(), 先进队的元素必定先出队,所以又把队列称作( )表。 8. 向顺序栈中插入新的元素分三步: 第一步进行() 判断, 判断条件是(); 第二步是修改(); 第三步是把新元素赋给()。同样, 从顺序栈中删除元素的过程也分三步: 第一步进行() 判断, 判断条件是( ) ;第二步把( )的值返回;第三步是( )。 9. 设一个空栈, 现有输入序列 1,2,3,4,5 , 经过 push,push,pop,push,pop,push,push 操作后,输出序列为( )。 10. 设一个数列的顺序为 1,2,3 ,通过栈结构可以排成的顺序数列为()、()、()、()、()。 11. 无论对于顺序存储还是链接存储的栈和队列来说, 进行插入和删除运算的时间复杂度均相同,该值为( )。 12. 在栈顶指针为 hs 的链栈中,判断栈空的条件是( )。二、选择 1. 一个栈的入栈序列为 a、b、c、d、e, 则栈的不可能的输出序列是() A edcba B decba C dceab D abcde 2. 栈结构通常采用的两种存储结构是( ) A 顺序存储和链式存储 B 散列方式和索引方式 C 链表存储和数组 D 线性存储和非线性存储 3. 判定一个顺序栈 ST( 最多元素为 m) 为空的条件是( ) A top!=0 B top==0 C top!=m D top==m-1 4. 判定一个顺序栈 ST( 最多元素为 m) 为栈满的条件是( ) A top!=0 B top==0 C top!=m D top==m-1 5. 向一个栈顶指针为 HS 的链栈中插入一个 s 所指结点时,则执行()。(不带空的头结点) A HS->next=s B s->next=HS->next; HS->next=s C s->next=HS; HS=s D s->next=HS; HS=HS->next 6. 从一个栈顶指针为 HS 的链栈中删除一个结点时,用 x 保存被删结点的值,则执行( )。(不带空的头结点) A x=HS; HS=HS->next B x=HS->data; C HS=HS->next; x=HS->data D x=HS->data; HS=HS->nex t 7. 一个队列的数据入列序列是 1,2,3,4 , 则队列的出队输出序列为() A 4,3,2,1 B 1,2,3,