千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java循环队列实现:循环队列代码实现

java循环队列实现:循环队列代码实现

来源:千锋教育
发布人:xqq
时间: 2023-07-23 14:11:52 1690092712

在计算机科学中,循环队列是一种数据结构,它是一个序列,由一个有限的数组支持。它的头尾相接,也就是说当到达队列的最后一个元素时,将其“循环”回到数组的开头,实现了一种循环方式。循环队列通常用于实现具有“先进先出”数据结构的场景,例如任务调度等。

Java实现循环队列的原理

Java实现循环队列通常使用数组作为底层数据结构。使用两个指针分别指向队列的头和尾,并使用“取模”运算来实现循环。例如,当从队列尾部索引处添加一个元素时,我们需要将尾指针向前移动一位。如果尾指针已经到达数组的末尾,则将其设为0。对于删除元素的操作,我们需要将头指针向前移动一位,并将其指向的元素标记为空。同样地,如果头指针已经到达数组的末尾,则将其设为0。

Java实现循环队列的实例代码

下面的代码演示了如何使用Java实现循环队列的基本操作(包括创建队列、向队列中添加元素、删除队列中的元素、获取队列长度等)。其中涉及到的循环和取模运算保证了队列可以实现循环和“先进先出”的特性。

public class CircularQueue {

private int[] data; // 队列数组 private int head; // 队列头部指针 private int tail; // 队列尾部指针 private int size; // 队列长度

public CircularQueue(int k) { data = new int[k]; head = -1; tail = -1; size = k; }

public boolean enQueue(int value) { if (isFull()) { return false; } if (isEmpty()) { head = 0; } tail = (tail + 1) % size; data[tail] = value; return true; }

public boolean deQueue() { if (isEmpty()) { return false; } if (head == tail) { head = -1; tail = -1; return true; } head = (head + 1) % size; return true; }

public int Front() { if (isEmpty()) { return -1; } return data[head]; }

public int Rear() { if (isEmpty()) { return -1; } return data[tail]; }

public boolean isEmpty() { return head == -1; }

public boolean isFull() { return ((tail + 1) % size) == head; }

public int getSize() { if (isEmpty()) { return 0; } return ((tail - head) + size) % size + 1; }

}

以上代码演示了如何使用Java实现循环队列的基本操作,包括向队列中添加元素、删除队列中的元素、获取队列长度等。借助于循环和取模运算,队列可以实现循环和“先进先出”的特性,从而满足各种应用场景的需求。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT