java固定长度队列怎么实现

69次阅读
没有评论

共计 1465 个字符,预计需要花费 4 分钟才能阅读完成。

在 Java 中,可以使用数组和循环来实现固定长度的队列。下面是一个简单的示例代码:

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;
    }
}

在这个示例中,我们使用一个数组来表示队列,使用两个指针 frontrear来记录队列的前端和后端位置,使用一个变量 size 来记录队列中的元素数量,使用一个变量 capacity 来记录队列的最大容量。

enqueue()方法用于向队列中添加元素,首先检查队列是否已满,如果已满则抛出异常,否则将 rear 指针向后移动一个位置,并将元素添加到新位置上。

dequeue()方法用于从队列中删除元素,首先检查队列是否为空,如果为空则抛出异常,否则将 front 指针向后移动一个位置,并返回原先 front 指针位置上的元素。

isEmpty()方法用于检查队列是否为空,如果队列中元素数量为 0,则返回 true,否则返回 false。

isFull()方法用于检查队列是否已满,如果队列中元素数量等于最大容量,则返回 true,否则返回 false。

getSize()方法用于获取队列中的元素数量。

使用示例:

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 类来创建一个固定长度为 5 的队列,并对队列进行操作。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-12发表,共计1465字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)