您的位置:首页 > 编程语言 > Java开发

Java 实现后进先出(LIFO)

2007-04-11 16:45 155 查看



/**//*


* Author: Eric Zhang


* Created: 20074る11ら と 01:09:25


* Modified: 20074る11ら と 01:09:25


* For LIFO


*/


import java.util.*;






public class LinkedListStack ...{






private static class Node ...{


Object o;


Node next;


}




private Node top = null;






public boolean imEmpty() ...{


return top == null;


}






public Object peek() ...{


if (top == null)


throw new EmptyStackException();


return top.o;


}






public void push(Object o) ...{


Node temp = new Node();


temp.o = o;


temp.next = top;


top = temp;


//return o;


}






public Object pop() ...{


if (top == null)


throw new EmptyStackException();




Object o = top.o;


top = top.next;


return o;


}






public static void main(String args[]) ...{


LinkedListStack o = new LinkedListStack();


o.push("aa");


o.push("bb");


System.out.println(o.pop());


o.push("cc");


System.out.println(o.pop());


System.out.println(o.pop());




}


}

LinkedListStack表明栈由一个私有的顶层嵌套类Node和一个私有引用变量top构成,引用变量top初始化为null表示一个空栈。相对于一维数组实现的栈,LinkedListStack并不需要一个构造器,因为它能够随着数据项的压入动态扩展。这样,void push(Object o)就不需要抛出FullStackException对象。然而,Object pop()还是需要检查栈是否为空的,这可能会导致可抛的EmptyStackException对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: