大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 介紹堆棧兩種實現方式

介紹堆棧兩種實現方式

更新時間:2020-11-02 18:11:21 來源:動力節點 瀏覽1633次

Java語言中的棧(stack)與堆(heap)都是java用來在Ram中存放數據的地方,屬于計算機的內存區域,與C++不同,java自動管理棧和堆,java程序員不能直接地設置棧或堆,相關的java堆棧的知識在前面的文章中都有學習過,今天我們來看看堆棧兩種實現方式,下面來介紹一下兩種java堆棧實現方式。


Java堆棧兩種實現方式分別是基于向量和基于列表的:


堆棧兩種實現方式之一:基于向量的堆棧


可以先來考慮一個傳統的基于堆棧的比擬:快餐店中盤子的存放。用餐開始的時候,獲得從堆棧中取出的盤子。刪除一個盤子的過程就是從堆棧中彈出一個盤子的過程。當盤子歸還后,它們被壓回到堆棧中。現在,假設盛放盤子的容器被標上刻度,可能是用來計算堆棧中盤子的數量。觀察一下,這看起來像一個斜向一邊的向量(如圖)

image.png


采用這個比擬,基于向量的堆棧實現可以通過將堆棧的“頂”與向量的“尾”對齊來完成,可以參見上圖。我們提供了兩個構造函數,其中一個提供向量的初始容量:

image.png


下面這個圖說明一個包含n個元素的基于向量的堆棧,棧頂是由底層向量的長度隱含說明的,箭頭表明增長方向。

image.png


為了向堆棧中添加元素,只需要簡單地使用Vector類的add方法。當需要從堆棧中刪除一個元素的時候,將最后一個元素刪除,并返回它的值。

image.png

image.png


add方法將元素添加到向量的尾部,如果必要的話對向量大小進行擴展。注意,如果向量具有n個元素,這個元素被加入到第n個位置,并將元素的數量增加到n+l。刪除一個元素的過程與此相反:它刪除并返回最后一個元素(我們在這里使用了對稱的原理。我們將基于這個概念設計幾對增加和刪除方法)。除了不修改堆棧之外,get方法與remove類似。通過查詢底層向量的大小信息,堆棧的大小很容易確定。當然,當向量為空的時候,它所支持的堆棧也是空的。

image.png


堆棧兩種實現方式之二:基于列表的堆棧

只有棧頂一端可以被修改。因此,使用單鏈表尋求一個堆棧的高效實現是明智的選擇。因為單鏈表處理列表頭的效率比處理列表尾的效率要高,我們將棧頂與單鏈表的頭對齊(見下圖)。

image.png


add方法僅僅執行addFirst,remove 操作僅僅執行removeFirst。因為已經實現了列表的remove操作,使之返回被刪除的值,所以這個值可以通過堆棧的remove方法被傳遞。

image.png

image.png


其余的方法就是來自于單鏈表的類似方法的包裝器。由于堆棧操作是鏈表操作的平凡表示,它們的復雜度與鏈表中對應的操作是相同的,每一個方法的運行時間都是常量時間。


應該注意,任何實現List接口的結構都足以實現堆棧。然而,已經見過的各種列表之間的區別集中體現在提供對列表尾的快速訪問上。由于不需要訪問堆棧的棧底,列表的其他實現不會有優越性,因此使用單鏈表實現。


總之基于向量和列表就是java堆棧兩種實現方式,希望大家可以好好學習上面對堆棧兩種實現方式的內容,相信有了以上實際例子的列舉,會對大家理解學習這兩種堆棧實現方式有所幫助。另外可以在java教程中更深入的學習堆棧的實現方式。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 色玖玖| 久久精品国产91久久麻豆自制 | 四虎精品成人a在线观看 | 欧美久久超级碰碰碰二区三区 | 快射视频网 | 狠狠色噜噜狠狠狠888奇米 | 亚洲欧美卡通成人制服动漫 | 国产精品亚洲精品一区二区三区 | 久久免费福利视频 | 在线观看免费视频a | 黄色日比视频 | 国产福利免费视频 | 看免费5xxaaa | 欧美中文字幕在线播放 | 欧美视频在线观看 | 久久99精品久久久久久牛牛影视 | 99热在线播放 | 国产高清在线a视频大全凹凸 | 欧美成人看片黄a免费 | 欧美色黄视频 | 免费观看a级完整视频 | 午夜成人在线视频 | 天天色操| 国产精品高清免费网站 | 男女一级毛片免费播放 | 国产成人aa免费视频 | 四虎影院海外永久 | 超级碰碰青草免费视频92 | 日韩高清一区二区三区不卡 | 国产亚洲区 | 好吊妞在线成人免费 | 日日干综合 | 日产精品久久久一区二区 | 亚洲国产欧美日韩一区二区三区 | 亚洲 欧美 日韩在线综合福利 | 啪啪色视频| 91九九| 成人国产第一区在线观看 | 精品免费在线视频 | 成人看片黄a毛片 | 四虎影视www四虎免费 |