成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Java】堆棧的實現(xiàn)

yacheng / 1151人閱讀

摘要:實現(xiàn)泛型實現(xiàn)下推堆棧堆棧節(jié)點構(gòu)造方法構(gòu)造方法判斷是否為空指向棧頂操作操作函數(shù)用于測試測試結(jié)果實現(xiàn)

Java實現(xiàn)
/*
 * 泛型實現(xiàn)下推堆棧
 */
public class LinkedStack {
    /*堆棧節(jié)點*/
    private static class Node {
        U item;
        Node next;

        Node() {                                            //構(gòu)造方法1
            item = null;
            next = null;
        }

        Node(U item, Node next) {            //構(gòu)造方法2
            this.item = item;
            this.next = next;
        }
        //判斷是否為空
        boolean end() {return item == null && next == null;}
    }

    private Node top = new Node();        //指向棧頂

    public void push(T item) {              //push操作
        top = new Node(item, top);
    }

    public T pop() {                                    //pop操作
        T result = top.item;
        if (!top.end()) {
            top = top.next;
        }
        return result;
    }

    /*main函數(shù)用于測試*/
    public static void main(String[] args) {
        LinkedStack lss = new LinkedStack();
        for (String s : "Phasers on stun!".split(" "))
            lss.push(s);
        String s;
        while ((s = lss.pop()) != null)
            System.out.println(s);
    }
}

測試結(jié)果
  

stun!
on
Phasers

C實現(xiàn)
typedef struct stack
{
    int data;
    struct stack*next;
}stack;

static stack* top;

int is_empty()
{
    return top==NULL;
}

void push(int a)
{
    stack*p;
    p=(stack*)malloc(sizeof(stack));
    p->data=a;
    p->next=top;
    top=p;
}

void pop()
{
    stack* q;
    q=top;
    top=top->next;
    free(q);
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64109.html

相關(guān)文章

  • Java線程堆棧分析

    摘要:線程堆棧最擅長與分析如下類型問題系統(tǒng)無緣無故過高。性能瓶頸如無法充分利用等線程死鎖死循環(huán),餓死等。由于線程數(shù)量太多導致系統(tǒng)失敗如無法創(chuàng)建線程等。注意死鎖的兩個或多個線程是不消耗的,有的人認為的使用率是線程死鎖導致的,這個說法是完全錯誤的。 不知覺間工作已有一年了,閑下來的時候總會思考下,作為一名Java程序員,不能一直停留在開發(fā)業(yè)務使用框架上面。老話說得好,機會是留給有準備的人的,因此...

    jerry 評論0 收藏0
  • Java集合問題大匯總

    摘要:集合中成員很豐富,常用的集合有,,等。實現(xiàn)接口的集合主要有。集合中不能包含重復的元素,每個元素必須是唯一的。而以作為實現(xiàn)的構(gòu)造函數(shù)的訪問權(quán)限是默認訪問權(quán)限,即包內(nèi)訪問權(quán)限。與接口不同,它是由一系列鍵值對組成的集合,提供了到的映射。 原文地址 Java集合 Java集合框架:是一種工具類,就像是一個容器可以存儲任意數(shù)量的具有共同屬性的對象。 Java集合中成員很豐富,常用的集合有Arra...

    894974231 評論0 收藏0
  • Treiber Stack簡單分析

    摘要:在添加新項目時使用堆棧,將堆棧的頂部放在新項目之后。當從堆棧中彈出一個項目時,在返回項目之前,您必須檢查另一個線程自操作開始以來沒有添加其他項目。比較和交換將堆棧的頭部設(shè)置為堆棧中舊的第二個元素,混合完整的數(shù)據(jù)結(jié)構(gòu)。 Abstract Treiber Stack Algorithm是一個可擴展的無鎖棧,利用細粒度的并發(fā)原語CAS來實現(xiàn)的,Treiber Stack在 R. Kent T...

    junfeng777 評論0 收藏0
  • Java? 教程(如何拋出異常)

    如何拋出異常 在捕獲異常之前,某些代碼必須拋出一個,任何代碼都可能拋出異常:你的代碼,來自其他人編寫的包中的代碼,例如Java平臺附帶的包或Java運行時環(huán)境,無論拋出什么異常,它總是使用throw語句拋出。 你可能已經(jīng)注意到,Java平臺提供了許多異常類,所有類都是Throwable類的后代,并且所有類都允許程序區(qū)分在程序執(zhí)行期間可能發(fā)生的各種類型的異常。 你還可以創(chuàng)建自己的異常類來表示你編寫的...

    zhangwang 評論0 收藏0
  • JVM內(nèi)存分配方式

    摘要:前言本篇講解在程序運行時,內(nèi)存的分配是怎樣進行的虛擬機編譯時的內(nèi)存存儲有三類靜態(tài)方法區(qū)存儲棧式存儲堆式存儲靜態(tài)存儲是指在編譯的時候就得確定這個數(shù)據(jù)的存儲需求,然后給它分配固定的內(nèi)存,所以說靜態(tài)存儲不允許有可變的數(shù)據(jù)結(jié)構(gòu)出現(xiàn),因為可變的數(shù)據(jù)不 前言 本篇講解在java程序運行時,內(nèi)存的分配是怎樣進行的? java虛擬機編譯時的內(nèi)存存儲有三類:1.靜態(tài)(方法區(qū))存儲2.棧式存儲3.堆式存儲...

    habren 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<