數據結構之棧

數據結構之棧:

package stack;

/**
 * @packagname:stack
 * @classname:StackTest
 * @date:2017/1/24
 * @author:cullinans
 * @des:棧的一系列操作
 */

public class StackList<T> {
    public int MAXSIZE;//定義一個棧的值
    public T[] data;
    public int top;
   //構造函數,初始化元素
    public StackList(int MAXSIZE, T[] data, int top) {
        this.MAXSIZE = MAXSIZE;
        this.data = data;
        this.top = top;
    }
//入棧
    public int push(StackList<T> st, T data){
        if(st.top==st.MAXSIZE-1){
            return -1;
        }
        st.data[top]=data;
        st.top++;
        return 0;
    }
    //出棧
    public T pop(StackList<T> st,T data){
        if(st.top==-1){
            return null;
        }
        data=st.data[st.top];
        top--;
        return data;
    }
    //打印棧
    public void print(StackList<T> t){
        T i=null;
       while(t.top!=-1){
           System.out.println(t.pop(t,i));
       }
    }
     public static void main(String[] args){
        String[] eles=new String[]{"a","b","c","d"};
        StackList<String> stacklist=new StackList<String>(4,eles,0);
        for(int i=0;i<stacklist.MAXSIZE-1;i++){
            stacklist.push(stacklist,eles[i]);
        }
        stacklist.print(stacklist);

    }
}
發佈了46 篇原創文章 · 獲贊 48 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章