JAVA 內部類 泛型 實現堆棧
堆棧類:
package c15;
public class LinkedStack<T> {
private static class Node<T> {
T item ;
Node<T> next ;
Node(){
item = null ;
next = null ;
}
Node (T item ,Node<T> next ){
this .item = item;
this .next = next;
}
boolean end() { return item == null && next == null ; }
}
private Node<T> top = new Node<T>();
public void push(T item){
top = new Node<T>( item, top);
}
public T pop(){
Node<T> resultNode = top ;
if (!top .end()){
top = top .next ;
}
return resultNode .item ;
}
public static void main(String[] args){
LinkedStack<Integer> sLinkedStack = new LinkedStack<Integer>();
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:
堆棧的下一個的意思一般都是指該成員的前一個成員,因為在堆棧的角度來說,他自己永遠都不會自到自己后面的成員是誰。每一個成員都只會知道自己的前面是誰。