import java.util.Vector;
public class QueTest {
public static void main(String[] args) {
Que que = new QueImp();
que.push("上山打老虎");
que.push("打到。。");
System.out.println(que.pop());
System.out.println(que.pop());
QueNode qn = new QueNode();
qn.push("sss");
qn.push("hhhh");
System.out.println(qn.pop());
System.out.println(qn.pop());
Que que1 = new QueImp1();
que1.push("上山打老虎111");
que1.push("打到1111。。");
System.out.println(que1.pop());
System.out.println(que1.pop());
}
}
interface Que{
public void push(Object e);
public Object pop();
}
class QueNode implements Que{
class Node {
Object o;
Node next;
Node(Object o){
this.o = o;
this.next = null;
}
}
Node temp = null;
Node head = null;
@Override
public Object pop() {
Object ob = head.o;
Node t = head.next;
head = t;
return ob;
}
@Override
public void push(Object arg0) {
temp = new Node(arg0);
if(head == null){
head = temp;
}else{
head.next = temp ;
}
}
}
class QueImp extends Vector implements Que {
/**
* 先进先出
*/
@Override
public void push(Object e) {
super.add(e);
}
@Override
public Object pop() {
Object o =super.elementAt(0);
super.removeElementAt(0);
return o;
}
public void remove(){
super.removeAllElements();
}
}
class QueImp1 implements Que {
java.util.LinkedList li = new java.util.LinkedList();
/**
* 先进先出
*/
@Override
public void push(Object e) {
li.addLast(e);
}
@Override
public Object pop() {
return li.removeFirst();
}