資料結構之棧的實現(JAVA)(一),資料結構實現java
//棧頂元素public class StackElement<T>{ private StackElement<T>nextElement; private T data;public StackElement(T data){this.data=data;}public StackElement<T> getNextElement(){return nextElement;}public void setNextElement(StackElement<T> nextElement){this.nextElement = nextElement;}public T getData(){return data;}public void setData(T data){this.data = data;}}
工具棧類:
public class SeqStack<T>{ private StackElement<T> obj;//用來儲存資料 private int size;//元素個數public SeqStack(){this.size=0;}//向棧頂加入一個元素public boolean push(T data){if (data!=null){StackElement<T>tempElement=new StackElement(data);tempElement.setNextElement(this.obj);this.obj=tempElement;tempElement=null;//回收this.size++;return true;}return false;}//棧頂中彈出一個元素public boolean pop(){if (this.size>0){this.obj=this.obj.getNextElement();this.size--;return true;}return false;}//清空棧public void clear(){this.size=0;this.obj=null;}//得到棧頂元素public T get(){return obj==null?null:obj.getData();}//棧的大小public int size(){return this.size;}public static void main(String []arg){SeqStack<Integer> selStack=new SeqStack();for(int i=0;i<10;i++)selStack.push(i);System.out.println("The size of the stack:"+selStack.size());int size=selStack.size();for(int i=0;i<size;i++){System.out.println(selStack.get());selStack.pop();}}} 運行結果:
不足之處,請指正。