使用队列实现栈
来源:互联网 发布:vb.net 正则表达式 编辑:程序博客网 时间:2024/06/06 01:08
public class QueueToStack {
private QueueX datas2;
private QueueX datas1;
public QueueToStack(int size){
this.datas1 = new QueueX(size);
this.datas2 = new QueueX(size);
}
public void push(Long data){
if (!datas1.isEmpty()) {
datas1.insert(data);
} else if(!datas2.isEmpty()){
datas2.insert(data);
} else {
datas1.insert(data);
}
}
public Long pop(){
if (!datas1.isEmpty()) {
int d1S = datas1.getSize();
for (int i = 0; i < d1S-1; i++) {
datas2.insert(datas1.remove());
}
return (Long)datas1.remove();
} else {
int d2S = datas2.getSize();
for (int i = 0; i < d2S-1; i++) {
datas1.insert(datas2.remove());
}
return (Long)datas2.remove();
}
}
}
private QueueX datas2;
private QueueX datas1;
public QueueToStack(int size){
this.datas1 = new QueueX(size);
this.datas2 = new QueueX(size);
}
public void push(Long data){
if (!datas1.isEmpty()) {
datas1.insert(data);
} else if(!datas2.isEmpty()){
datas2.insert(data);
} else {
datas1.insert(data);
}
}
public Long pop(){
if (!datas1.isEmpty()) {
int d1S = datas1.getSize();
for (int i = 0; i < d1S-1; i++) {
datas2.insert(datas1.remove());
}
return (Long)datas1.remove();
} else {
int d2S = datas2.getSize();
for (int i = 0; i < d2S-1; i++) {
datas1.insert(datas2.remove());
}
return (Long)datas2.remove();
}
}
}
阅读全文
0 0
- 使用栈实现队列
- 使用队列实现栈
- 简单使用栈实现队列
- 使用两个队列实现栈
- 使用两个栈实现队列
- 使用两个栈实现队列
- 使用两个栈实现队列
- 栈&队列--使用两个栈实现一个队列+使用两个队列实现一个栈
- 使用两个队列实现一个栈
- 使用栈Stack实现队列Queue
- 使用两个队列实现一个栈
- 使用2个队列实现一个栈
- 算法导论 使用两个栈实现队列
- 使用两个栈实现一个队列
- 使用两个栈实现一个队列
- 使用两个队列实现一个栈
- 数据结构-使用两个栈实现一个队列
- 使用两个队列实现一个栈
- HDFS分布式文件存储系统
- 在从1到n的正数中1出现的次数
- genromfs的使用及nuttx下romfs制作
- 奇妙的三维立体图
- hive udaf
- 使用队列实现栈
- hdu 1231
- 合并表记录
- 仿QQ左滑打开或删除
- NOIP模拟题 期望DP 礼物
- java内部类详载
- MATLAB图形句柄
- activemq+spring简单记录
- CSS3 做一个有闪光效果的进度条