两个栈实现一个队列
队列是先进先出,而栈是先进后出;
考虑到我们取栈顶元素的便利性,我们在实现时使得栈顶等于队列头;
由于往栈中添加元素相当于往队列头添加元素,因此我们需要在两个队列中进行元素的转移,比较简单的实现是:
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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装