首頁  >  文章  >  Java  >  java中棧和佇列的差別是什麼?

java中棧和佇列的差別是什麼?

青灯夜游
青灯夜游原創
2019-11-16 16:34:003064瀏覽

java中棧和佇列的差別是什麼?

佇列(Queue):是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表;

堆疊(Stack):是限定只能在表的一端進行插入和刪除操作的線性表。

差異如下:

一、規則不同

#1、佇列:先進先出(First In First Out)FIFO

2、堆疊:先進後出(First In Last Out )FILO

二、對插入和刪除操作的限定不同

1、佇列:只能在表格的一端進行插入,並在表的另一端進行刪除;

2、堆疊:只能在表的一端插入和刪除。

三、遍歷資料速度不同

1、佇列:基於位址指標進行遍歷,而且可以從頭部或尾部進行遍歷,但不能同時遍歷,無需開闢空間,因為在遍歷的過程中不影響資料結構,所以遍歷速度要快;

2、堆疊:只能從頂部取數據,也就是說最先進入堆疊底部的,需要遍歷整個堆疊才能取出來,而且在遍歷資料的同時需要為資料開闢臨時空間,保持資料在遍歷前的一致性。

四、介面實現的異同

佇列和堆疊由Collcetion介面實現,佇列由Queue介面實現,堆疊由List介面實作。

五、遍歷數據速度的異同

棧只能從頭部取數據,也就最先放入的需要遍歷整個堆疊最後才能取出來,而且在遍歷數據的時候還得為資料開闢臨時空間,保持資料在遍歷前後的一致性。

佇列基於位址指標進行遍歷,而且可以從頭或尾部開始遍歷,無需開闢臨時空間,速度要快的多。

以上是java中棧和佇列的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn