算法初级——栈和队列的相互实现

如何仅用队列结构实现栈结构? /* * 队列结构实现栈 * 两个队列,一个主队列,一个辅助队列 * 从压栈开始操作,主队列压栈,弹出时,需要判断主队列是否为空,如果为空,抛出异常,然后判断主队列长度, * 如果主队列长度为一,直接弹出,否则将主队列除最后一个元素外的所有元素全部压入辅助队列,主队列和辅助队列交换, * 然后弹出主队列留的最后一个元素,即为栈所要弹出的元素。查询操作,判断主队列是否为

- 阅读全文 -

算法初级——数组实现栈和队列

用数组结构实现大小固定的队列和栈 数组实现队列 /* * 数组实现队列:定义长度,压入,弹出,查询操作 * 压入时先判断是否满队列,如果不满,队列长度+1,赋值,然后判断游标位置,如果游标等于数组数组最大位置,游标回到队列开头 * 弹出时判断是否空队列,如果不空,队列长度-1,弹出,然后判断游标位置,如果游标位置等于数组最大位置,游标回到开头 */ public class ArrayToQu

- 阅读全文 -

算法初级——返回栈中最小元素

实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 【要求】 1.pop、push、getMin操作的时间复杂度都是O(1)。 2.设计的栈类型可以使用现成的栈结构。 /* * 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返 回栈中最小元素的操作。 * 两种实现方式 * mystack1:如果最小栈为空,压入最小栈,再来的元素判断是否小于当前最小,如果小于当前最

- 阅读全文 -