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();
}
}
分享到:
相关推荐
NULL 博文链接:https://128kj.iteye.com/blog/1665616
java数组实现循环队列。包括入队, 出队,输出队列。 队列先入先出。
NULL 博文链接:https://128kj.iteye.com/blog/1624362
主要介绍了java数组实现队列及环形队列实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java-用数组实现栈-队列-线性列表(最详细) 有注释 适合java新生 进行数组的练习 3个数据结构的数组实现练习
NULL 博文链接:https://shxin.iteye.com/blog/1948849
下面小编就为大家分享一篇基于Java数组实现循环队列的两种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1) 初始化含有20个英文名字的数组; 2) 排序:以a-z,A-Z的升序顺序; 3) 输入任意一个名字并能将其插入到合适的位置。
在队列的代码中,引用了链表的代码
普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的...
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作,下面介绍一下java使用数组和链表实现队列的示例
主要介绍了Java数组队列概念与用法,结合实例形式分析了Java数组队列相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
下面小编就为大家带来一篇Java用数组实现循环队列的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java实现队列(数组结构)(csdn)————程序
java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf
主要介绍了Java数组模拟优先级队列数据结构的实例,优先级队列中的元素会被设置优先权,本文的例子借助了Java中的TreeSet和TreeMap,需要的朋友可以参考下
用java语言中的数组来实现队列,其中扩容方法为在原数组的基础上乘以2,另外也测试了用java中Vector类实现队列。
基于JAVA实现的常用数据结构代码,JAVA实现复杂度、动态数组、链表、栈、队列、二叉搜索树等
队列,包含了数组队列,环形队列,在队列中,使用很多问题,得到了很多好的应用,对于后面集中地应用有好处