麪試系列7
原題:
用兩個棧實現一個隊列的功能?
思路:
假設兩個棧 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;
}
}
位律師廻複
0條評論