共計(jì) 1465 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
在 Java 中,可以使用數(shù)組和循環(huán)來(lái)實(shí)現(xiàn)固定長(zhǎng)度的隊(duì)列。下面是一個(gè)簡(jiǎn)單的示例代碼:
public class FixedSizeQueue {private int[] queue;
private int front;
private int rear;
private int size;
private int capacity;
public FixedSizeQueue(int capacity) {this.capacity = capacity;
queue = new int[capacity];
front = 0;
rear = -1;
size = 0;
}
public void enqueue(int item) {if (isFull()) {throw new RuntimeException("Queue is full");
}
rear = (rear + 1) % capacity;
queue[rear] = item;
size++;
}
public int dequeue() {if (isEmpty()) {throw new RuntimeException("Queue is empty");
}
int item = queue[front];
front = (front + 1) % capacity;
size--;
return item;
}
public boolean isEmpty() {return size == 0;
}
public boolean isFull() {return size == capacity;
}
public int getSize() {return size;
}
}
在這個(gè)示例中,我們使用一個(gè)數(shù)組來(lái)表示隊(duì)列,使用兩個(gè)指針 front 和rear來(lái)記錄隊(duì)列的前端和后端位置,使用一個(gè)變量 size 來(lái)記錄隊(duì)列中的元素?cái)?shù)量,使用一個(gè)變量 capacity 來(lái)記錄隊(duì)列的最大容量。
enqueue()方法用于向隊(duì)列中添加元素,首先檢查隊(duì)列是否已滿,如果已滿則拋出異常,否則將 rear 指針向后移動(dòng)一個(gè)位置,并將元素添加到新位置上。
dequeue()方法用于從隊(duì)列中刪除元素,首先檢查隊(duì)列是否為空,如果為空則拋出異常,否則將 front 指針向后移動(dòng)一個(gè)位置,并返回原先 front 指針位置上的元素。
isEmpty()方法用于檢查隊(duì)列是否為空,如果隊(duì)列中元素?cái)?shù)量為 0,則返回 true,否則返回 false。
isFull()方法用于檢查隊(duì)列是否已滿,如果隊(duì)列中元素?cái)?shù)量等于最大容量,則返回 true,否則返回 false。
getSize()方法用于獲取隊(duì)列中的元素?cái)?shù)量。
使用示例:
FixedSizeQueue queue = new FixedSizeQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);
System.out.println(queue.getSize()); // 輸出:5
System.out.println(queue.dequeue()); // 輸出:1
System.out.println(queue.dequeue()); // 輸出:2
queue.enqueue(6);
queue.enqueue(7);
System.out.println(queue.getSize()); // 輸出:5
System.out.println(queue.isFull()); // 輸出:true
這段示例代碼演示了如何使用 FixedSizeQueue 類(lèi)來(lái)創(chuàng)建一個(gè)固定長(zhǎng)度為 5 的隊(duì)列,并對(duì)隊(duì)列進(jìn)行操作。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!