棧:
棧(stack)又名堆棧,它是一種運(yùn)算受限的線性表。其限制是僅允許在表的一端進(jìn)行插入和刪除運(yùn)算。這一端被稱為棧頂,相對地,把另一端稱為棧底。? ? ? ? (推薦學(xué)習(xí):java課程)
棧(Stack)是操作系統(tǒng)在建立某個進(jìn)程時或者線程(在支持多線程的操作系統(tǒng)中是線程)為這個線程建立的存儲區(qū)域,該區(qū)域? ? 具有FIFO的特性,在編譯的時候可以指定需要的Stack的大小。
隊列
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
隊列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進(jìn)行插入操作的端稱為隊尾,進(jìn)行刪除操作的端稱為隊頭。
隊列中沒有元素時,稱為空隊列。
建立順序隊列結(jié)構(gòu)必須為其靜態(tài)分配或動態(tài)申請一片連續(xù)的存儲空間,并設(shè)置兩個指針進(jìn)行管理。一個是隊頭指針front,它指向隊頭元素;另一個是隊尾指針rear,它指向下一個入隊元素的存儲位置。
隊列采用的FIFO(first in first out),新元素(等待進(jìn)入隊列的元素)總是被插入到鏈表的尾部,而讀取的時候總是從鏈表的頭部開始讀取。每次讀取一個元素,釋放一個元素。所謂的動態(tài)創(chuàng)建,動態(tài)釋放。
因而也不存在溢出等問題。由于鏈表由結(jié)構(gòu)體間接而成,遍歷也方便。(先進(jìn)先出)
區(qū)別:
棧就是一個桶,后放進(jìn)去的先拿出來,它下面本來有的東西要等它出來之后才能出來。(后進(jìn)先出)
隊列只能在隊頭做刪除操作,在隊尾做插入操作,而棧只能在棧頂做插入和刪除操作。(先進(jìn)先出)
以上就是java中棧和隊列的區(qū)別的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號