棧的鏈表實現(JAVA)

來源:互聯網
上載者:User

標籤:java   鏈表   棧   

大家知道,棧的實現可以是鏈表或數組或其他多種方式,鏈表的好處就是不會限制大小而且出棧和入棧速度都很快。下面我們來看代碼:

public class ListNode{    Object val;    ListNode next = null;    public ListNode(Object val){        this.val = val;    }}
public interface StackInterf {    //定義壓棧操作    public void push(Object o);    //定義出棧操作    public Object pop() throws Exception;    //返回棧頂元素    public Object peek();    //返回棧大小    public int size();    //判斷是否為空白    public boolean isEmpty();    //tostring    public String toString();}
public class LinkedStack implements StackInterf{    ListNode top;//指向棧頂    private int size;//定義棧大小    public LinkedStack(){        top=null;        size=0;    }    public void push(Object o){        ListNode node = new ListNode(o);        node.next = top;        top = node;        size++;    }    public Object pop()throws Exception{        if(isEmpty()){            throw new Exception("stack is empty!");        }        Object result = top.val;        top = top.next;        size--;        return result;      }    public Object peek(){        Object result = top.val;        return result;    }    public int size(){        return size;    }    public boolean isEmpty(){        if(size!=0){        return false;        }        return true;    }}
public class Test{    public static void main(String[] args){        LinkedStack stack = new LinkedStack();        //把1到10依次入棧        for(int i=0;i<10;i++){        stack.push(i);        }        //連續5次出棧操作        for(int i=0;i<5;i++){        try {            stack.pop();        } catch (Exception e) {            e.printStackTrace();        }        }        System.out.println("棧為空白嗎?: " + stack.isEmpty());        System.out.println("棧的大小為: " + stack.size());        System.out.println("棧頂元素為: " + stack.top.val);        System.out.println("棧頂元素為: " + stack.peek());       }}

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

棧的鏈表實現(JAVA)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.