public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front = 0;
end = -1;
}
public MyQueue(int maxsize) {
arr = new long[maxsize];
elements = 0;
front = 0;
end = -1;
}
// 添加数据
public void insert(int value) {
if (end == arr.length - 1) {
end = -1;
}
arr[++end] = value;
elements++;
}
// 删除数据
public long remove() {
long value = arr[front++];
if (front == arr.length - 1) {
front = 0;
}
elements--;
return value;
}
// 查看数据
public long peek() {
return arr[front];
}
// 判断是否为空
public boolean isEmpty() {
return elements == 0;
}
// 判断是否为满
public boolean isFull() {
return elements == arr.length;
}
public static void main(String[] args) {
MyQueue myQueue = new MyQueue();
myQueue.insert(23);
myQueue.insert(45);
myQueue.insert(13);
myQueue.insert(1);
System.out.println(myQueue.isFull());
System.out.println(myQueue.isEmpty());
System.out.println(myQueue.peek());
while (!myQueue.isEmpty()) {
myQueue.remove();
}
myQueue.insert(23);
}
}
分享到:
相关推荐
在这个“Linux一个简单队列实例”中,我们将探讨如何在Linux环境下实现一个基础的队列,并涵盖入队(enqueue)和出队(dequeue)这两个基本操作。 一、队列数据结构基础 队列的基本结构通常包括头部(front)和尾部...
这些基本操作构成了一个简单的线性数组队列。在实际项目中,队列可以应用于许多场景,例如任务调度、打印机管理、操作系统中的进程调度等。在窗口编程中,队列也常用于消息处理,每个窗口系统都会有一个消息队列,...
1. **定义数据结构**:首先,我们需要定义一个存储队列元素的数据结构。这可以是数组、链表或者更高级的数据结构如循环链表或双端队列(deque)。 2. **初始化队列**:设置队首和队尾指针,通常初始时队列为空,即...
当一个进程生成消息时,它将消息放入队列,而接收进程则从队列中取出消息进行处理。这种模式降低了发送方和接收方的耦合度,使得它们可以独立运行。 2. **消息队列的类型**:常见的消息队列有RabbitMQ、Kafka、...
下面是一个简单的队列类实现示例: ```java import java.util.Vector; import java.lang.Exception; public class Queue extends Vector { public synchronized void enq(Object x) { super.addElement(x); } ...
下面是一个简单的`QueueStack`类实现: ```cpp #include template class QueueStack { private: std::queue<T> queue1; std::queue<T> queue2; public: // 构造函数 QueueStack() {} // 入栈操作 void ...
循环队列是队列的一种优化形式,它通过将队列的末尾连接回开头,形成一个环状结构,从而解决了普通队列在满和空状态时的边界问题。在C++中,循环队列通常用数组实现,通过两个指针分别指向队头和队尾,队列的入队...
本篇文章将深入探讨如何使用C++实现一个简单的队列。 首先,我们需要定义队列的基本结构。一个队列通常包含两个主要部分:存储元素的数组或向量,以及表示队头和队尾的指针。队头指向最早入队的元素,而队尾则用于...
在本文中,我们将深入探讨如何使用C++编程语言来实现一个简单的车站购票模拟队列系统。这个系统基于控制台界面,模拟了乘客在车站购票窗口排队、购票以及离开队伍的过程。我们将详细介绍C++中实现此类模拟系统的关键...
假设队列容量为`MaxSize`,如果`(rear + 1) % MaxSize == front`,那么队列已满,因为再插入一个元素会导致`rear`追上`front`。 在实际编程中,还需要考虑初始化队列、显示队列内容等辅助操作。初始化队列通常设置...
消息队列是System V支持一种IPC机制,通过类似链表的操作向一个FIFO里通过msgsnd发送用户自定义数据,进程可以通过msgrcv来接收指定类似mtype的数据,从而实现进程间通信。 在服务器端实现广播功能,以及服务器退出...
以下是一个简单的循环队列类的实现: ```cpp #include class CircularQueue { private: int front, rear; // 队头和队尾指针 int capacity; // 队列的最大容量 int* data; // 存储元素的数组 public: ...
标题中的“使用phpfpm作为一个简单的内置异步队列”是指利用PHP的FastCGI Process Manager(php-fpm)来实现一种轻量级的异步处理机制,这通常是为了处理那些耗时较长或者非阻塞的任务,比如发送邮件、文件上传、...
用Redis做的一个简单的消息队列
标题中的“写了一个很简单的消息队列”表明这个项目是一个基本的消息队列实现,通常用于在分布式系统中处理异步任务或数据传输。消息队列是计算机科学中的一个重要概念,它允许应用程序通过发送消息来解耦生产者...
总结来说,"简单的C语言循环队列"是一个基础的数据结构实验,它帮助我们理解如何在C语言环境中实现和操作循环队列,同时也为我们提供了在实际编程中处理数据流和队列操作的基础。通过这个实验,可以提升对数据结构和...
本项目是一个使用C语言实现的简单循环消息队列,让我们深入探讨其背后的原理和实现细节。 首先,我们需要理解消息队列的基本概念。消息队列是一种先进先出(FIFO)的数据结构,其中生产者将消息放入队列,消费者从...
在VS2008环境下,我们可以利用C++的面向对象特性,编写这个队列类,并创建一个简单的主程序来测试队列的各种操作。例如,可以创建一个队列,进行多次入队和出队操作,同时检查队列的状态。 总的来说,这个项目为...
2. 使用JDK自带的DelayQueue:这是一个无界阻塞队列,元素需实现Delayed接口,当延迟时间到达时,元素可以从队列中取出。但这种方式不适用于分布式环境。 3. 消息中间件实现,如RabbitMQ:通过设置消息的存活时间...
在给定的示例程序中,实现了一个简单的进程间通信示例程序。该程序使用消息队列来传递两个文件的内容。首先,程序打开两个文件,并将其内容读取到缓冲区中,然后将缓冲区的内容发送到消息队列中。接收进程从消息队列...