数据结构与算法--栈与队列

两个栈共享一片连续空间,可以将两个栈的栈底分别设在这片空间的两端

在n个元素连续出栈之后,它们的出栈顺序和入栈顺序一定正好相反

n个元素通过一个栈产生n个元素的出栈序列,其中出栈和入栈操作的次数总是相等的

栈顶元素和栈底元素可能是同一个元素

对顺序栈进行出栈、入栈操作不涉及元素的前后移动问题(栈顶指针top的移动)

函数调用时,系统要用栈保存必要的信息

队列

可以通过少用一个存储空间的方法解决无法判别队列满还是空的问题

n个元素入队的顺序和出队的顺序总是一致的

队列结构的顺序存储会产生假溢出现象

循环队列是解决顺序队列假溢出的一种方法(循环队列也存在着空间溢出问题)

循环队列是一个抽象的数据结构

在用数组表示的循环队列中,front值不一定小于等于rear,当入队元素的总个数超过了数组的大小个数时,front值大于rear

循环顺序队列中是否可以插入下一个元素与队头指针和队尾指针的值无关

判断循环队列为空的条件是:front=rear

判断循环队列为满的条件是:(rear+1)%size=front

循环队列的长度是:(rear-front+size)%size

栈与队列

不论是入队操作还是入栈操作,在顺序存储结构上都要考虑溢出情况

判断题

1、所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。

F 循环队列是指用循环数组表示的队列。

2、队列和栈都是运算受限的线性表,只允许在表的两端进行运算。

F 栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表。并非只允许在表的两端进行运算。

3、An algorithm to check for balancing symbols in an expression uses a stack to store the symbols.

T 求解逆波兰表达式(后缀表达式),使用栈。

balancing symbols 指的是一组匹配的符号,类似于圆括号,花括号,方括号。

4、在n个元素连续进栈以后,它们的出栈顺序和进栈顺序一定正好相反。

T

5、n个元素通过一个栈产生n个元素的出栈序列,其中进栈和出栈操作的次数总是相等的。

T

6、通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:123。

F 输出的序列为:231。

7、在用数组表示的循环队列中,front值一定小于等于rear值。

F 不一定。在一个循环队列中,如果已经有若干个元素出队了,而且入队元素的总个数超过了数组的大小个数,是会发生front大于rear这种现象的。

8、不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。

T

9、队列是一种插入和删除操作分别在表的两端进行的线性表,是一种先进后出的结构。

F 队列是一种先进先出的结构。

10、"Circular Queue" is defined to be a queue implemented by a circularly linked list or a circular array.

F 同1。

11、栈是插入和删除只能在一端进行的线性表;队列是插入在一端进行,删除在另一端进行的线性表。

T

12、n个元素进队的顺序和出队的顺序总是一致的。

T

13、栈底元素是不能删除的元素。

F 栈底元素是最后被删除的元素。

14、顺序栈中元素值的大小是有序的。

F 顺序栈是指用顺序存储结构实现的栈,栈中的元素不一定是有序的。

15、栈顶元素和栈底元素有可能是冋一个元素。

T 栈的深度为1。

16、栈是一种对进栈、出栈操作总次数做了限制的线性表。

F 栈是一种对进栈、出栈位置做了限制的线性表,未对进栈、出栈操作总次数进行限制。

17、对顺序栈进行进栈、出栈操作不涉及元素的前、后移动问题。

T

18、环形队列中有多少个元素可以根据队首指针和队尾指针的值来计算。

T

19、若采用“队首指针和队尾指针的值相等”作为环形队列为空的标志,则在设置一个空队时只需将队首指针和队尾指针赋同一个值,不管什么值都可以。

T

20、栈和队列的插入和删除操作特殊,所以,栈和队列是非线性结构。

F 栈和队列是线性结构。

21、两个栈共享一片连续空间,可以将两个栈的栈底分别设在这片空间的两端。

T

22、不论是入队还是入栈操作,在顺序存储结构下都应考虑溢出现象。

T

23、可以通过少用一个存储空间的方法解决循环队列假溢出现象。

F 可以通过少用一个存储空间的方法解决无法判别队列满还是空。

队列结构的顺序存储会产生假溢出现象,循环队列是解决顺序队列假溢出的一种方法。

24、序列{1,2,3,4,5}依次入栈,则不可能得到{3,4,1,2,5}的出栈序列。

T 可以得到{3,4,2,1,5}的出栈序列。

25、在对不带头结点的链队列作出队操作时,不会改变头指针的值。

F 若链队列是带头结点的,头指针会始终指向头结点,则不会改变。

若链队列是不带头结点的,头指针会始终指向队首元素,则必定会改变。

26、循环队列也存在着空间溢出问题。

T

27、循环队列执行出队操作时会引起大量元素的移动。

F 进行出队操作时,对队首指针进行操作即可。

28、队列中允许插入的一端叫队头,允许删除的一端叫队尾。

F 允许插入的一端叫队尾,允许删除的一端叫队头。

29、队列结构的顺序存储会产生假溢出现象。

T

你可能感兴趣的:(数据结构)