面试系列7用两个栈实现一个队列的功能

来源:软件水平考试    发布时间:2012-11-05    软件水平考试视频    评论

原题:
  用两个栈实现一个队列的功能?
思路:
  假设两个栈 a 和b,且都为空。
  可以认为栈 a 为提供入队列的功能,栈 b 提供出队列的功能。
  入队列: 入栈 a
  出队列:
  1 如果栈b 不为空,直接弹出栈 b 的数据。
  2 如果栈 b 为空,则依次弹出栈 a 的数据,放入栈 b 中,再弹出栈 b 的数据。
statckone.java
import java.util.arraylist;
public class statckone {
private static arraylist al;
public statckone() {
if (al == null)
al = new arraylist();
}
public void put(object o) {
al.add(o);
}
public object top() {
int size = al.size();
if (al != null) {
if (size != 0) {
system.out.println('statckone');
return al.get(size - 1);
} else
system.out.println('栈中没有对象');
} else
system.out.println('没有初始化');
system.out.println('statckone');
return null;
}
}
statcktwo.java
import java.util.arraylist;
public class statcktwo {
private static arraylist al;
public statcktwo() {
al = new arraylist();
}
public void put(object o) {
if (al != null)
al.add(o);
else
system.out.println('没有初始化');
}
public object top() {
int size = al.size();
if (al != null) {
if (size != 0) {
system.out.println('statcktwo');
return al.get(size - 1);
} else {
statckone so = new statckone();
return so.top();
}
} else
system.out.println('没有初始化');
return null;
}
}

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答