两个栈实现一个队列
队列是先进先出,而栈是先进后出;
考虑到我们取栈顶元素的便利性,我们在实现时使得栈顶等于队列头;
由于往栈中添加元素相当于往队列头添加元素,因此我们需要在两个队列中进行元素的转移,比较简单的实现是:
1.q1和q2在任一时刻至少有一个为空,即如果有元素,所以元素只在同一个队列中。
2.当有元素需要插入时,将插入的元素插入到空的队列中,并将另一非空队列的元素转移到该队列中,于是插入的元素添加到了队列头中。
import java.util.Stack;
public class 两个栈实现一个队列 {
Stack stack1 = new Stack();
Stack stack2 = new Stack();
public void push(int num){
stack1.push(num);
}
public int pop(){
if(stack2.empty()){
while(!stack1.empty()){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Cassandra 安装部署
python版本:2.7 jdk版本:1.8 Cassandra版本:3.11.2 官网: http://cassandra.apache.org/ 下载: wget http://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/3.11.2/apache-cassandra-3.11.2-bin.tar.gz 1.解压: tar xvzf apache-cassandra-3.11.2-bin.tar.gz -C ../app/ 2.修改目录名称: mv apache-cassandra-3.11.2/ cassandra-3.11.2/ 3.配置环境变量: vim ~/.bash_profile export CASSANDRA_HOME=/home/hadoop/app/cassandra-3.11.2 export PATH=$CASSANDRA_HOME/bin:$PATH source ~/.bash_profile 4.修改配置文件: vim $CASSANDRA_HOME/conf/cassandra.yaml 修改如下位置,...
-
下一篇
阿里主机wordpress注册收不到邮件,WordPress用邮件找回密码功能
问题说明 在我们使用阿里云的云虚拟主机搭建WordPress站点时,里面的邮件发送即使设置好了,也发送不了邮件。注:阿里云的主机都是通过SMTP来进行发送邮件的,需要开启主机的fsockopen。但是WordPress的SMTP是通过steam_connect_client进行发送的,而不是fsockopen。下面说个简单的方法来解决这项问题。 解决方法 1.打开阿里云虚拟主机的后台,从高级设置的php.ini设置中把fsockopen开启。如下图 2.进行修改/wp-includes/class-smtp.php中大概在270行左右(可以通过下面代码进行查询) $socket_context=stream_context_create($options); $this->smtp_conn=@stream_socket_client( $host.":".$port, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $socket_context ); 3.把上面代码修改为如下代码 $this->smtp_conn=...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,CentOS7官方镜像安装Oracle11G
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程