鏈式佇列—用連結串列來實現佇列
鏈式佇列(先進先出)
用連結串列來實現佇列
class Node {
public int data;
public Node next;
//每次new一個節點 就要呼叫它的構造方法
public Node(int data) {
this.data = data;
}
}
public class MyQueue {
public int usedSize;
public Node front;//佇列的頭
public Node rear;//佇列的尾
public boolean offer(int val) {//放資料
Node node = new Node(val);
if (rear == null) {//第一次插入
this.rear = node;
this.front = node;
}else {
this.rear.next = node;
this.rear = node;
}
usedSize++;//每存一個元素 usedSize++
return true;
}
//出隊且刪除隊頭元素
public int poll() {
if (isEmpty()) {
throw new RuntimeException("佇列為空!");
}
int data = this.front.data;
this.front = this.front.next;
return data;
}
public boolean isEmpty() {
return this.usedSize == 0;
}
//檢視隊頭元素
public int peek() {
if (isEmpty()) {
throw new RuntimeException("佇列為空!");
}
return this.front.data;
}
public class TestDemo {
public static void main(String[] args) {
MyQueue myQueue =new MyQueue();
myQueue.offer(1);
myQueue.offer(2);
myQueue.offer(3);
System.out.println(myQueue.peek());//1
System.out.println(myQueue.poll());//1
System.out.println(myQueue.peek());//2
相關文章
- 連結串列&鏈棧&佇列佇列
- 用連結串列實現佇列的功能佇列
- 佇列_單向連結串列佇列
- 【資料結構】佇列(順序佇列、鏈佇列)的JAVA程式碼實現資料結構佇列Java
- 鏈式佇列的實現方式佇列
- 約瑟夫環 佇列+連結串列佇列
- 自定義單連結串列佇列的基本介面函式(非迴圈佇列)佇列函式
- 【php實現資料結構】鏈式佇列PHP資料結構佇列
- 鏈式佇列佇列
- 聊聊陣列與連結串列,棧與佇列陣列佇列
- 佇列(楊輝三角)——鏈式佇列佇列
- 佇列的鏈式儲存結構的實現佇列
- 陣列、連結串列、堆疊和佇列學習陣列佇列
- 用C++模板描述的連結串列、棧、佇列(宣告與實現) (轉)C++佇列
- java實現單連結串列、棧、佇列三種資料結構Java佇列資料結構
- 用 Rust 實現佇列Rust佇列
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- 佇列-鏈式儲存佇列
- 單向鏈式佇列佇列
- 線性表(陣列、連結串列、佇列、棧)詳細總結陣列佇列
- 佇列的鏈式儲存結構佇列
- C 語言使用非迴圈雙向連結串列實現佇列佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- 實現簡單延遲佇列和分散式延遲佇列佇列分散式
- 鏈式儲存的佇列佇列
- 連結串列、棧、佇列、KMP相關知識點佇列KMP
- 佇列的一種實現:迴圈佇列佇列
- 【ZJOF】用來個棧來實現一個佇列佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- 用C++模板描述的連結串列、棧、佇列(補充) (轉)C++佇列
- 常見的線性列表結構---【陣列、連結串列、棧、佇列、堆】陣列佇列
- javascript實現佇列JavaScript佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- Python佇列的三種佇列實現方法Python佇列
- 用佇列實現棧,用棧實現佇列,聽起來有點繞,都搞懂了就掌握了精髓!佇列
- 025 透過連結串列學Rust之使用棧實現雙端佇列Rust佇列
- 025 通過連結串列學Rust之使用棧實現雙端佇列Rust佇列