package collection.list;
import java.util.LinkedList;
/**
* 用LinkedList模拟队列和堆栈的数据结构
* @author wjw
*
*/
public class LinkList_class {
public static void main(String[] args) {
DuiZhan q=new DuiZhan();
q.add("abc1");
q.add("abc2");
q.add("abc3");
q.add("abc4");
q.add("abc5");
while(!q.isEmpty()){
System.out.println(q.get());
}
System.out.println("-----------------------------------");
DuiLie d=new DuiLie();
d.add("abc1");
d.add("abc2");
d.add("abc3");
d.add("abc4");
d.add("abc5");
while(!d.isEmpty()){
System.out.println(d.get());
}
}
}
/*
* 堆栈,后进先出
*/
class DuiZhan{
private LinkedList list=new LinkedList();
/**
* 添加第一个元素
* @param obj
*/
public void add(Object obj){
list.offerFirst(obj);//添加元素
}
/**
* 返回并移除第一个元素
* @return
*/
public Object get(){
return list.pollFirst();//获取元素,若无元素则返回null
}
public boolean isEmpty(){
return list.isEmpty();
}
}
/*
* 队列,先进先出
*/
class DuiLie{
private LinkedList list=new LinkedList();
/**
* 添加第一个元素
* @param obj
*/
public void add(Object obj){
list.offerLast(obj);//添加元素
}
/**
* 返回并移除第一个元素
* @return
*/
public Object get(){
return list.pollFirst();//获取元素,若无元素则返回null
}
public boolean isEmpty(){
return list.isEmpty();
}
}