棧和隊列


棧是先存進去的數(shù)據(jù)只能最后被取出來牍氛,是FILO(First In Last Out缨伊,先進后出)请毛。

棧結構.png

用鏈表實現(xiàn)棧:

class Node<E>{
    Node<E> next = null;
    E data;
    public Node(E data) {this.data = data;}
}
public class Stack<E>{
    Node<E> top = null;
    public boolean isEmpty(){
      return top ==  null;
    }
    public void push(E data){
        Node<E> newNode = new Node<E>(data);
        newNode.next = top;
        top = newNode;
    }
    public E pop(){
        if(this.isEmpty()){
            return null;
        }
        E data = top.data;
        top = top.next;
        return data;
    }
    public E peek(){
        if(isEmpty()) {
            return null;
        }
        return top.data;
    }
}

隊列是FIFO(First In First Out粘我,先進先出)臣缀,它保持進出順序一致坝橡。

隊列結構.png
class Node<E> {
    Node<E> next =null;
    E data;
    public Node(E data){
        this.data = data;
    }
}
public class MyQueue<E> {
    private Node<E> head = null;
    private Node<E> tail = null;
    public boolean isEmpty(){
      return head = tail;
    }
    public void put(E data){
        Node<E> newNode = new Node<E>(data);
        if(head == null && tail == null){
            head = tail = newNode;
        }else{
            tail.next = newNode;
            taile = newNode;
        }
    }
    public E pop(){
        if(this.isEmpty()){
            return null;
        }
        E data = head.data;
        head = head.next;
        return data;
    }
    public int size(){
        Node<E> tmp = head;
        int n = 0;
        while(tmp != null) {
            n++;
            tmp = tmp.next;
        }
        return n;
    }
    public static void main(String []args){
      MyQueue<Integer> q = new MyQueue<Integer>();
      q.put(1);
      q.put(2);
      q.put(3);
      System.out.println("隊列長度:" + q.size());
      System.out.println("隊列首元素:" + q.pop());
      System.out.println("隊列首元素:" + q.pop());
    }
}

輸出結果:

隊列長度:3
隊列首元素:1
隊列首元素:2

注:
如果需要實現(xiàn)多線程安全,要對操作方法進行同步精置,用synchronized修飾方法

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末计寇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脂倦,更是在濱河造成了極大的恐慌番宁,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赖阻,死亡現(xiàn)場離奇詭異蝶押,居然都是意外死亡,警方通過查閱死者的電腦和手機火欧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門棋电,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苇侵,你說我怎么就攤上這事赶盔。” “怎么了榆浓?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵招刨,是天一觀的道長。 經(jīng)常有香客問我哀军,道長,這世上最難降的妖魔是什么打却? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任杉适,我火速辦了婚禮,結果婚禮上柳击,老公的妹妹穿的比我還像新娘猿推。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布蹬叭。 她就那樣靜靜地躺著藕咏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秽五。 梳的紋絲不亂的頭發(fā)上孽查,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音坦喘,去河邊找鬼盲再。 笑死,一個胖子當著我的面吹牛瓣铣,可吹牛的內(nèi)容都是我干的答朋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼棠笑,長吁一口氣:“原來是場噩夢啊……” “哼梦碗!你這毒婦竟也來了?” 一聲冷哼從身側響起蓖救,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤洪规,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后藻糖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淹冰,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年巨柒,在試婚紗的時候發(fā)現(xiàn)自己被綠了樱拴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡洋满,死狀恐怖晶乔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牺勾,我是刑警寧澤正罢,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站驻民,受9級特大地震影響翻具,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜回还,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一裆泳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柠硕,春花似錦工禾、人聲如沸运提。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽民泵。三九已至,卻和暖如春槽畔,著一層夾襖步出監(jiān)牢的瞬間栈妆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工竟痰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留签钩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓坏快,卻偏偏與公主長得像铅檩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子莽鸿,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 棧和隊列是兩種應用非常廣泛的數(shù)據(jù)結構昧旨,它們都來自線性表數(shù)據(jù)結構,都是“操作受限”的線性表祥得。 棧 棧(Stack):...
    karlsu閱讀 644評論 0 1
  • 棧 棧的英文單詞是Stack,它代表一種特殊的線性表兔沃,這種線性表只能在固定一端(通常認為是線性表的尾端)進行插入,...
    Jack921閱讀 1,497評論 0 5
  • 一级及、隊列的定義 【定義】:隊列(queue)是只允許在一端進行插入操作乒疏,而在另一端進行刪除操作的線性表∫梗【特征】:...
    NotFunGuy閱讀 624評論 0 3
  • 再過十幾個小時怕吴,我又要離開這兒了,嗯县踢,我又要和你相隔千里了转绷,盡管雖然這段時間我們并沒有什么交集,但至少想到你也在萬...
    穿白襯衫的小狐貍閱讀 302評論 0 0
  • 細細碎碎的夕陽落在往遠處延伸的土路上, 眼前被這暖暖的金黃色包裹了谴返,大路兩旁的鄉(xiāng)間草叢也打上了傍晚黃昏的金粉煞肾,透著...
    我及我閱讀 298評論 0 1