![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题----栈和队列
Beat_IT_W
这个作者很懒,什么都没留下…
展开
-
逆序栈问题
题目:给你一个栈,请你逆序这个栈,不能申请额外的数据结构,只能使用递归函数。如何实现?详情参看《程序员代码面试指南》P7。package com.gxu.dawnlab_algorithm8;import java.util.Stack;/** * 给你一个栈,请你逆序这个栈,不能申请额外的数据结构,只能 * 使用递归函数。如何实现? * @author junbin *...原创 2019-07-12 17:05:25 · 195 阅读 · 0 评论 -
用栈结构实现队列结构
同“用队列结构实现栈结构一样”,利用两个栈即可实现一个队列结构。定义一个push栈、一个pop栈,队列输入的时候,就对push进行压栈操作,因为栈是先进后出,而队列是先进先出,当要求队列输出的时候,只需要将push栈的元素全部都压入pop栈,这样顺序就反过来了,把pop栈的栈顶元素弹出即可。举个例子:压入push栈的元素是1,2,3,4,5,则此时栈顶元素是5,将push弹出全部数据并压入pop栈...原创 2019-06-24 17:00:40 · 201 阅读 · 0 评论 -
用队列结构实现栈结构
这是一个面试可能经常碰到的简单题目,核心思想就是可以利用两个队列实现一个栈。定义两个队列,一个data队列,一个help队列,数据压栈的时候只压入data队列,一旦需要出栈的时候,因为栈是先进后出的特点,也就是后进先出,则需要将data队列里面除最后一个数据外的全部压入help栈,留下的最后一个数据就是应该出栈的数据,最后将help和data进行引用交换即可。代码实现:public st...原创 2019-06-24 16:44:21 · 243 阅读 · 0 评论 -
实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。
题目: 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 【要求】1.pop、push、getMin操作的时间复杂度都是O(1)。2.设计的栈类型可以使用现成的栈结构。解决思路: 设置两个栈,一个data栈和一个min栈,其中data栈正常保存元素,min栈的栈顶则用来保存最小值。data栈进来第一个元素的时候,也压入到m...原创 2019-06-24 16:20:46 · 507 阅读 · 0 评论