堆栈类:
package c15;public class LinkedStack{ private static class Node { T item ; Node next ; Node(){ item = null ; next = null ; } Node (T item ,Node next ){ this .item = item; this .next = next; } boolean end() { return item == null && next == null ; } } private Node top = new Node (); public void push(T item){ top = new Node ( item, top); } public T pop(){ Node resultNode = top ; if (!top .end()){ top = top .next ; } return resultNode .item ; } public static void main(String[] args){ LinkedStack sLinkedStack = new LinkedStack (); for (int i = 0; i < 10; i++) { sLinkedStack .push(i ); } System. out .println(sLinkedStack .pop()); }}
NOTE:
堆栈类设计思路:
1.使用内部类分离了结构逻辑和操作逻辑。
2.堆栈的结构特点是只能知道顶部的成员信息,每次新添加的成员都会处于堆栈的顶部,每次删除成员
都会在堆栈顶部删除。
3.堆栈结构可以简单的分为两部分,一个是顶部成员的内容,另一个是指向顶部以下的压顶部成员的指针。
4.堆栈结构必须要提供一个知道何时所有成员已经全部清除的方法。
操作的设计思路:
1.需要一个空类内容在实例化的时候填充到底部。
2.一个push():添加新成员到顶部,一个pop():把顶部成员删除
important:
堆栈的下一个的意思一般都是指该成员的前一个成员,因为在堆栈的角度来说,他自己永远都不会自到自己后面的成员是谁。每一个成员都只会知道自己的前面是谁。