知识点总结
- 所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。(F) 循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。循环队列的前提是队列,只能首尾操作。
- 队列和栈都是运算受限的线性表,队列只允许在表的两端进行运算。栈只能一端进行操作。
- An algorithm to check for balancing symbols in an expression uses a stack to store the symbols。解析:balancing symbols指的是一组匹配的符号,类似于圆括号,花括号,方括号。可见这道题的意思是求解逆波兰表达式,使用stack
- 在n个元素连续进栈以后,它们的出栈顺序和进栈顺序一定正好相反。
- n个元素通过一个栈产生n个元素的出栈序列,其中进栈和出栈操作的次数总是相等的。
- 通过对堆栈S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。输出的序列为:231 ……4题
- 在用数组表示的循环队列中,front值一定小于等于rear值(F)。
- 不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑"溢出"情况。
- 队列是一种插入删除操作分别在表的两端进行的线性表,是一种先进先出的结构FIFO
- "Circular Queue" is defined to be a queue implemented by a circularly linked list or a circular array.(F)循环队列是一个抽象的概念,不局限于实现方式。
- n个元素进队的顺序和出队的顺序总是一致的。但是进出栈顺序不一定
-
栈底元素也能删除。
-
顺序栈中元素值的大小是有序的。(F)栈有两种存储表示方法,分别为顺序栈和链式栈。顺序栈说的是存储结构,而不是元素有顺序。
-
栈顶元素和栈底元素有可能是同一个元素。(一开始的时候)
-
栈是一种对进栈、出栈操作总次数做了限制的线性表。(F)进出栈次数没有限制
-
对顺序栈进行进栈、出栈操作不涉及元素的前、后移动问题。
-
环形队列中有多少个元素可以根据队首指针和队尾指针的值来计算。
情况⼀、 rear > front 这个想必就不⽤说了吧,直接 rear - front 就好喽情况⼆、 rear < front 这是⽐较特殊的⼀种情况, rear 跑到 front 前⾯去了,这个时候也有⼀公式: (MaxSize + rear - front) % MaxSize ; ,这个要怎么理解呢?假设我现在有⼀个⻓度为 MaxSize 的数组,我的 rear 现在超了量程了,超了 rear 个