黑马程序员技术交流社区
标题:
使用LinkedList模拟一个堆栈和队列:
[打印本页]
作者:
AndyYuan
时间:
2015-8-28 07:25
标题:
使用LinkedList模拟一个堆栈和队列:
public class LinkedListTest {
public static void main(String[] args) {
MyStack<String> stack = new MyStack<String>() ;
stack.put("abc1");
stack.put("abc2");
stack.put("abc3");
System.out.println(stack);
while(!stack.isEmpty()){
System.out.println(stack.get());
}
MyQuence<String> quence = new MyQuence<String>() ;
quence.put("abc1");
quence.put("abc2");
quence.put("abc3");
System.out.println(quence);
while(!quence.isEmpty()){
System.out.println(quence.get());
}
}
}
/*
* 栈的特点是先进后出。
*/
class MyStack<T>{
private LinkedList<T> list ;
public MyStack(){
list = new LinkedList<T>();
}
//进栈方法,每次进来的元素只能添加在末尾
public void put(T t){
list.addLast(t);
}
//出栈方法,每次只能从末尾移除
public T get(){
return list.removeLast();
}
public boolean isEmpty(){
return list.isEmpty();
}
@Override
public String toString() {
return list.toString();
}
}
/*
* 队列:先进先出
*/
class MyQuence<E>{
LinkedList<E> list ;
MyQuence(){
list = new LinkedList<E>() ;
}
//每次进来,添加到末尾
public void put(E e){
list.addLast(e);
}
//每次取出时,取最前面的元素
public E get(){
return list.removeFirst();
}
public boolean isEmpty(){
return list.isEmpty();
}
@Override
public String toString() {
return list.toString();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2