标签为 [] 的文章

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

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

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

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

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

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