国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

yacheng / 1139人閱讀

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

Java實(shí)現(xiàn)
/*
 * 泛型實(shí)現(xiàn)下推堆棧
 */
public class LinkedStack {
    /*堆棧節(jié)點(diǎn)*/
    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實(shí)現(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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64109.html

相關(guān)文章

  • Java線程堆棧分析

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

    jerry 評(píng)論0 收藏0
  • Java集合問題大匯總

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

    894974231 評(píng)論0 收藏0
  • Treiber Stack簡單分析

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

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

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

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

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

    habren 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<