久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java實現隊列queue數據結構詳解

147次閱讀
沒有評論

共計 1844 個字符,預計需要花費 5 分鐘才能閱讀完成。

在 Java 中,可以使用數組或者鏈表來實現隊列數據結構。

  1. 使用數組實現隊列
  • 首先,創建一個固定大小的數組作為隊列的容器。
  • 聲明兩個指針,一個指向隊列頭部(front),一個指向隊列尾部(rear)。
  • 當插入一個元素時,將元素放入 rear 指針所指向的位置,并將 rear 指針向后移動一位。
  • 當刪除一個元素時,將 front 指針所指向的元素刪除,并將 front 指針向后移動一位。
  • 當隊列為空時,front 和 rear 指針指向同一位置。
  1. 使用鏈表實現隊列
  • 首先,創建一個鏈表類,包含節點類和隊列類。
  • 節點類包含一個值和一個指向下一個節點的指針。
  • 隊列類包含一個指向頭節點的指針和一個指向尾節點的指針。
  • 當插入一個元素時,創建一個新節點,并將其放入尾節點的后面,并更新尾節點指針。
  • 當刪除一個元素時,將頭節點刪除,并更新頭節點指針。
  • 當隊列為空時,頭節點和尾節點指針為空。

以下是使用數組實現隊列的示例代碼:

public class Queue {
private int capacity; // 隊列容量
private int[] data; // 存儲隊列元素的數組
private int front; // 隊列頭部指針
private int rear; // 隊列尾部指針
public Queue(int capacity) {
this.capacity = capacity;
this.data = new int[capacity];
this.front = 0;
this.rear = -1;
}
public boolean isEmpty() {return (rear == -1);
}
public boolean isFull() {return (rear == capacity - 1);
}
public void enqueue(int item) {if (isFull()) {System.out.println("Queue is full, cannot enqueue item.");
return;
}
data[++rear] = item;
}
public int dequeue() {if (isEmpty()) {System.out.println("Queue is empty, cannot dequeue item.");
return -1;
}
int item = data[front++];
if (front > rear) {
front = 0;
rear = -1;
}
return item;
}
public int peek() {if (isEmpty()) {System.out.println("Queue is empty, cannot peek item.");
return -1;
}
return data[front];
}
}

使用示例:

public class Main {public static void main(String[] args) {Queue queue = new Queue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println(queue.dequeue()); // 輸出 1
System.out.println(queue.peek()); // 輸出 2
System.out.println(queue.isEmpty()); // 輸出 false
System.out.println(queue.isFull()); // 輸出 false
queue.enqueue(4);
queue.enqueue(5);
System.out.println(queue.isFull()); // 輸出 true
queue.enqueue(6); // 輸出 Queue is full, cannot enqueue item.
System.out.println(queue.dequeue()); // 輸出 2
System.out.println(queue.dequeue()); // 輸出 3
System.out.println(queue.dequeue()); // 輸出 4
System.out.println(queue.dequeue()); // 輸出 5
System.out.println(queue.isEmpty()); // 輸出 true
System.out.println(queue.peek()); // 輸出 Queue is empty, cannot peek item.
}
}

以上是使用數組實現隊列的詳細解釋和示例代碼。你也可以嘗試使用鏈表來實現隊列數據結構。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-21發表,共計1844字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 定日县| 乌审旗| 夏津县| 溧阳市| 岑溪市| 新余市| 汕头市| 田阳县| 合水县| 平谷区| 昌平区| 蛟河市| 呼伦贝尔市| 榆树市| 镇江市| 黄龙县| 剑河县| 嘉祥县| 山丹县| 临漳县| 安宁市| 尉犁县| 徐水县| 九龙坡区| 松潘县| 若尔盖县| 通河县| 怀化市| 原平市| 双辽市| 南宁市| 遂溪县| 且末县| 南丰县| 张北县| 通道| 嘉荫县| 上虞市| 彰化市| 内丘县| 新野县|