`

一个简单的队列

阅读更多
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一个简单队列实例”中,我们将探讨如何在Linux环境下实现一个基础的队列,并涵盖入队(enqueue)和出队(dequeue)这两个基本操作。 一、队列数据结构基础 队列的基本结构通常包括头部(front)和尾部...

    最简单的队列

    这些基本操作构成了一个简单的线性数组队列。在实际项目中,队列可以应用于许多场景,例如任务调度、打印机管理、操作系统中的进程调度等。在窗口编程中,队列也常用于消息处理,每个窗口系统都会有一个消息队列,...

    队列建立和队列的逆置

    1. **定义数据结构**:首先,我们需要定义一个存储队列元素的数据结构。这可以是数组、链表或者更高级的数据结构如循环链表或双端队列(deque)。 2. **初始化队列**:设置队首和队尾指针,通常初始时队列为空,即...

    用消息队列实现的简单聊天程序

    当一个进程生成消息时,它将消息放入队列,而接收进程则从队列中取出消息进行处理。这种模式降低了发送方和接收方的耦合度,使得它们可以独立运行。 2. **消息队列的类型**:常见的消息队列有RabbitMQ、Kafka、...

    编写一个JAVA的队列类

    下面是一个简单的队列类实现示例: ```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++实现一个简单的队列。 首先,我们需要定义队列的基本结构。一个队列通常包含两个主要部分:存储元素的数组或向量,以及表示队头和队尾的指针。队头指向最早入队的元素,而队尾则用于...

    一个简单的车站购票模拟队列—控制台—C++源码

    在本文中,我们将深入探讨如何使用C++编程语言来实现一个简单的车站购票模拟队列系统。这个系统基于控制台界面,模拟了乘客在车站购票窗口排队、购票以及离开队伍的过程。我们将详细介绍C++中实现此类模拟系统的关键...

    循环队列c++实现c++实现

    假设队列容量为`MaxSize`,如果`(rear + 1) % MaxSize == front`,那么队列已满,因为再插入一个元素会导致`rear`追上`front`。 在实际编程中,还需要考虑初始化队列、显示队列内容等辅助操作。初始化队列通常设置...

    基于Linux消息队列的简易聊天室(C语言)(附源代码)

    消息队列是System V支持一种IPC机制,通过类似链表的操作向一个FIFO里通过msgsnd发送用户自定义数据,进程可以通过msgrcv来接收指定类似mtype的数据,从而实现进程间通信。 在服务器端实现广播功能,以及服务器退出...

    用数组实现一个循环队列

    以下是一个简单的循环队列类的实现: ```cpp #include class CircularQueue { private: int front, rear; // 队头和队尾指针 int capacity; // 队列的最大容量 int* data; // 存储元素的数组 public: ...

    使用phpfpm作为一个简单的内置异步队列

    标题中的“使用phpfpm作为一个简单的内置异步队列”是指利用PHP的FastCGI Process Manager(php-fpm)来实现一种轻量级的异步处理机制,这通常是为了处理那些耗时较长或者非阻塞的任务,比如发送邮件、文件上传、...

    用Redis做一个简单的消息队列

    用Redis做的一个简单的消息队列

    写了一个很简单的消息队列

    标题中的“写了一个很简单的消息队列”表明这个项目是一个基本的消息队列实现,通常用于在分布式系统中处理异步任务或数据传输。消息队列是计算机科学中的一个重要概念,它允许应用程序通过发送消息来解耦生产者...

    简单的C语言循环队列

    总结来说,"简单的C语言循环队列"是一个基础的数据结构实验,它帮助我们理解如何在C语言环境中实现和操作循环队列,同时也为我们提供了在实际编程中处理数据流和队列操作的基础。通过这个实验,可以提升对数据结构和...

    C实现的一个简单的循环消息队列

    本项目是一个使用C语言实现的简单循环消息队列,让我们深入探讨其背后的原理和实现细节。 首先,我们需要理解消息队列的基本概念。消息队列是一种先进先出(FIFO)的数据结构,其中生产者将消息放入队列,消费者从...

    用c++ 实现的一个队列模拟

    在VS2008环境下,我们可以利用C++的面向对象特性,编写这个队列类,并创建一个简单的主程序来测试队列的各种操作。例如,可以创建一个队列,进行多次入队和出队操作,同时检查队列的状态。 总的来说,这个项目为...

    高效延时队列的设计与实现

    2. 使用JDK自带的DelayQueue:这是一个无界阻塞队列,元素需实现Delayed接口,当延迟时间到达时,元素可以从队列中取出。但这种方式不适用于分布式环境。 3. 消息中间件实现,如RabbitMQ:通过设置消息的存活时间...

    进程与消息队列进程与消息队列简单例子

    在给定的示例程序中,实现了一个简单的进程间通信示例程序。该程序使用消息队列来传递两个文件的内容。首先,程序打开两个文件,并将其内容读取到缓冲区中,然后将缓冲区的内容发送到消息队列中。接收进程从消息队列...

Global site tag (gtag.js) - Google Analytics