package com.yin.test;
public class ArrayQueue {
private int size;
private int[] array;
public int head = 0;
public int tail = 0;
public ArrayQueue(int size) {
this.size = size;
array = new int[size];
}
public void Add(int addNum) {
if (!isFull()) {
tail = (tail -1 + this.size)%this.size;
array[tail] = addNum;
} else {
System.out.println("队列已满,不能进行插入操作");
}
}
public void del() {
if (!isEmpty()) {
//tail--
array[head] = 0;
head = (head -1 + this.size)%this.size;
} else {
System.out.println("队列为空不能进行删除操作");
}
}
public boolean isFull() {
int pos = (tail -1 + this.size)%this.size;
if (pos == head) {
return true;
} else {
return false;
}
}
public boolean isEmpty() {
if (head == tail)
return true;
else
return false;
}
public void listElements() {
//从尾部到头部输出队列元素
int low = tail;
int high = head;
while (low != high) {
System.out.print(array[low] + ",");
low++;
}
}
public static void main(String args[]) {
ArrayQueue queue = new ArrayQueue(5);
System.out.println("queue.isEmpty() = " + queue.isEmpty());
queue.Add(1);
System.out.println("head = " + queue.head);
System.out.println("tail = " + queue.tail);
queue.Add(2);
queue.Add(3);
queue.del();
System.out.println("head = " + queue.head);
System.out.println("tail = " + queue.tail);
queue.Add(4);
queue.Add(5);
System.out.println("head = " + queue.head);
System.out.println("tail = " + queue.tail);
queue.Add(6);
queue.listElements();
}
}
分享到:
相关推荐
总之,`PriorityQ.java`文件可能是一个简单的数组实现优先队列的示例,通过分析这个文件,我们可以学习到如何利用数组数据结构实现优先队列,以及理解其核心的插入、删除和查找操作。同时,这也能帮助我们更好地掌握...
通过学习这个`QueueArray`类,我们可以了解到Java中如何使用数组高效地实现循环队列,并掌握其核心操作。这个简单的数据结构在实际开发中有着广泛的应用,对于提升程序的性能和逻辑清晰度都大有裨益。
为了实现队列操作,数组队列通常需要两个额外的变量来跟踪队头和队尾。添加元素时,如果队列已满,则需要进行扩容操作;移除元素时,如果队列为空,会抛出异常。这种基于数组的队列虽然在空间效率上比链表实现的队列...
java数组实现循环队列。包括入队, 出队,输出队列。 队列先入先出。
基于Java数组实现循环队列的两种方法小结 ...本文提供了基于Java数组实现循环队列的两种方法,并详细介绍了循环队列的定义、特点、实现方法和操作。旨在帮助读者更好地理解循环队列的实现机理和设计思想。
Java 数组实现栈、队列和线性列表 Java 是一种广泛使用的编程语言,数组是 Java 中的一种基本数据结构。数组可以用来实现栈、队列和线性列表等数据结构。下面是使用 Java 数组实现栈、队列和线性列表的详细介绍。 ...
在普通数组队列中,一旦队列满或空,需要进行数组的重新分配,而循环队列则避免了这个过程,提升了性能。 在编程语言中,如C、C++、Java或Python,我们可以用不同的方式实现数组循环队列。例如,在C++中,可以定义...
数据结构学习-Java使用数组实现简单的队列操作SimpleQueue,简单易懂,适合初学者。
学习Java数组是理解Java基础的重要一步,掌握数组的使用能够帮助开发者有效地处理和操作数据,为后续的编程学习打下坚实基础。在实际开发中,合理地利用数组和集合框架,可以实现高效、稳定和可维护的代码。
现在,你已经掌握了使用Java数组进行排序和动态插入元素的基本知识。在实际编程时,可以结合这些概念完成题目所要求的大作业。当然,具体实现还需要考虑到错误处理、用户输入验证等细节,以确保程序的健壮性和用户...
本资源提供了Java实现的数据结构代码,包括栈、动态数组、队列、链表和二叉树,这些都是计算机科学中最基础且重要的数据结构。 1. **栈(Stack)**:栈是一种“后进先出”(LIFO)的数据结构,常用于表达式求值、...
以上是Java数组的基本操作和示例,它们构成了Java编程的基础。通过理解并熟练运用这些概念,开发者可以更有效地处理数据和构建复杂的程序。在实际项目中,数组与其他数据结构(如链表、队列、栈等)一起使用,为解决...
在实际应用中,Java提供了一些内置的队列接口和类,如Queue、Deque、ArrayDeque等,它们提供了上述操作的实现。开发者可以根据具体需求选择合适的数据结构和实现方式。例如,如果需要高效访问元素,可以选择...
Java 中的双端队列实现 在 Java 中,LinkedList 的内部使用双端链表队列原理实现,而 ArrayList 的内部使用双端数组队列原理实现。 Java 实现自定义双端队列可以通过链表和数组两种方式实现,双端队列可以充当单端...
Java用数组实现循环队列的示例 本篇文章展示了如何使用Java语言通过数组实现循环队列的示例。循环队列是一种特殊的队列结构,它的队头和队尾是相连的,形成一个环形结构。这种结构可以避免队列的溢出和下溢的情况,...
Java数组队列是一种基于数组实现的线性数据结构,它遵循先进先出(FIFO,First In First Out)的原则。在Java中,数组队列通常用于处理数据的顺序处理,例如任务调度、消息传递等场景。以下是关于Java数组队列的一些...
在Java中,我们可以使用数组或ArrayList等集合类来实现环形缓冲数组。环形缓冲数组的设计灵感来自于环形队列,它提供了一种在有限空间内循环存放元素的方式,具有先进先出(FIFO)的特性。 环形缓冲数组的基本概念...
普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的...