Java佇列知識點整理
阿新 • • 發佈:2021-01-30
佇列
1.Queen 佇列,隊尾進,隊頭出
Deque:雙端佇列
LinkedList:佇列/雙端佇列,底層是雙向連結串列
PriorityQueue:優先順序佇列,底層是二叉樹,但具有佇列的特性
2.Queue queue = new LinkedList<>();
add,offer返回值:boolean
queue.add( );//呼叫add方法 預設是隊尾入隊,滿了的時候插入會丟擲異常
queue.offer( );//呼叫offer方法 預設是隊尾入隊,滿了的時候直接返回false
remove:刪除
poll:彈出(儘量用poll) //
peek:得到隊頭元素且不刪除
LinkedList linkedlist queue = new LinkedList<>();
linkedlist.addFirst( );//隊頭進
linkedlist.addLast( );//隊尾進
迴圈佇列:
1.front和rear相遇,到底是空還是滿?
2.front和rear都面臨一個問題:
rear+1越界
front+1越界
解決:
1.犧牲一個空間,來判斷是否為滿,判斷當前rear的下一個是否為front
2.(rear+1)%len 是否等於front,若等於,則滿
3.若要放k個元素,在構造方法中設定陣列大小應為k+1