激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java中使用數組實現棧數據結構實例

Java中使用數組實現棧數據結構實例

2019-12-08 21:06junjie JAVA教程

這篇文章主要介紹了Java中使用數組實現棧數據結構實例,本文先是講解了實現棧至少應該包括以下幾個方法等知識,然后給出代碼實例,需要的朋友可以參考下

Java語言中最重要的數據結構之一,它的實現,至少應該包括以下幾個方法:

1.pop() 出棧操作,彈出棧頂元素。
2.push(E e) 入棧操作
3.peek() 查看棧頂元素
4.isEmpty() 棧是否為空

另外,實現一個棧,還應該考慮到幾個問題:

1.棧的初始大小以及棧滿以后如何新增棧空間
2.對棧進行更新時需要進行同步

簡單示例,使用數組實現棧,代碼如下:

復制代碼代碼如下:


public class Stack<E> { 

 

    // Java 不支持泛型數組,如需使用,請使用Java提供的容器  
    private Object[] stack; 

    // 棧的默認初始大小  
    private static final int INIT_SIZE = 2; 

    // 棧頂索引  
    private int index; 

    public Stack() {  
        stack = new Object[INIT_SIZE];  
        index = -1;  
    } 

    /**  
     * 構造方法  
     *   
     * @param initSize  
     *            棧的初始大小  
     */ 
    public Stack(int initSize) {  
        if (initSize < 0) {  
            throw new IllegalArgumentException();  
        }  
        stack = new Object[initSize];  
        index = -1;  
    } 

    /**  
     * 出棧操作  
     *   
     * @return 棧頂對象  
     */ 
    public synchronized E pop() {  
        if (!isEmpty()) {  
            E temp = peek();  
            stack[index--] = null;  
            return temp;  
        }  
        return null;  
    } 

    /**  
     * 入棧操作  
     *   
     * @param obj  
     *            等待入棧的對象  
     */ 
    public synchronized void push(E obj) {  
        if (isFull()) {  
            Object[] temp = stack;  
            // 如果棧滿,則創建空間為當前棧空間兩倍的棧  
            stack = new Object[2 * stack.length];  
            System.arraycopy(temp, 0, stack, 0, temp.length);  
        }  
        stack[++index] = obj;  
    } 

    /**  
     * 查看棧頂對象  
     *   
     * @return 棧頂對象  
     */ 
    public E peek() {  
        if (!isEmpty()) {  
            return (E) stack[index];  
        }  
        return null;  
    } 

    /**  
     * 查看棧是否為空  
     *   
     * @return 如果棧為空返回true,否則返回false  
     */ 
    public boolean isEmpty() {  
        return index == -1;  
    } 

    /**  
     * 查看棧是否滿  
     *   
     * @return 如果棧滿返回true,否則返回false  
     */ 
    public boolean isFull() {  
        return index >= stack.length - 1;  
    }  
}

 

最后說明,Java中實現了棧(java.util.Stack)的數據結構,它是通過繼承Vector類實現的,一般情況下我們直接拿來用就行了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情大乳女做爰办公室韩国 | 91成人在线网站 | 在线观看网址av | 欧美精品一区二区久久 | 性爱视频在线免费 | 久久免费精品视频 | 中国成人在线视频 | 草莓福利社区在线 | 久久91精品国产91久久yfo | 精品欧美一区二区精品久久久 | 国产91精品久久久久久 | 久久福利电影网 | 多人乱大交xxxxx变态 | 一区二区免费看 | www.91sao| 91精品久久久久久久久 | 日本黄色a视频 | 日本免费不卡一区二区 | 一级做受毛片免费大片 | 成人在线观看免费观看 | 久久久久久69 | 中文字幕在线观看成人 | 亚洲看片网 | 欧美一级高潮 | 日本免费不卡一区二区 | 国产一级不卡毛片 | 免费国产成人高清在线看软件 | 欧美久久久久久久久 | 久久精品99久久久久久2456 | 日韩av成人 | 国产亚洲美女精品久久久2020 | 羞羞色院91精品网站 | 精品久久久久久久久久久下田 | 久久精品久 | 欧美一级美片在线观看免费 | 毛片视频网址 | 天天夜夜草| 亚洲精品 欧美 | 精品亚洲在线 | 九九热精品视频在线免费观看 | 久久精品首页 |