佇列(Queue):是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表;
堆疊(Stack):是限定只能在表的一端進行插入和刪除操作的線性表。
差異如下:
一、規則不同
#1、佇列:先進先出(First In First Out)FIFO
2、堆疊:先進後出(First In Last Out )FILO
二、對插入和刪除操作的限定不同
1、佇列:只能在表格的一端進行插入,並在表的另一端進行刪除;
2、堆疊:只能在表的一端插入和刪除。
三、遍歷資料速度不同
1、佇列:基於位址指標進行遍歷,而且可以從頭部或尾部進行遍歷,但不能同時遍歷,無需開闢空間,因為在遍歷的過程中不影響資料結構,所以遍歷速度要快;
2、堆疊:只能從頂部取數據,也就是說最先進入堆疊底部的,需要遍歷整個堆疊才能取出來,而且在遍歷資料的同時需要為資料開闢臨時空間,保持資料在遍歷前的一致性。
四、介面實現的異同
佇列和堆疊由Collcetion介面實現,佇列由Queue介面實現,堆疊由List介面實作。
五、遍歷數據速度的異同
棧只能從頭部取數據,也就最先放入的需要遍歷整個堆疊最後才能取出來,而且在遍歷數據的時候還得為資料開闢臨時空間,保持資料在遍歷前後的一致性。
佇列基於位址指標進行遍歷,而且可以從頭或尾部開始遍歷,無需開闢臨時空間,速度要快的多。
以上是java中棧和佇列的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!