`
yinjj472
  • 浏览: 1685 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java数组实现队列操作

阅读更多
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();
	}
	
	
}

分享到:
评论
8 楼 yinjj472 2012-03-02  
test5
7 楼 yinjj472 2012-03-02  
yinjj472 写道
yinjj472 写道
yinjj472 写道
test1

test2

teset3

test4
6 楼 yinjj472 2012-03-02  
yinjj472 写道
yinjj472 写道
test1

test2

teset3
5 楼 yinjj472 2012-03-02  
yinjj472 写道
test1

test2
4 楼 yinjj472 2012-03-02  
test1
3 楼 003 2011-06-18  
C/C++的移民,大家理解一下
2 楼 cnsuifeng 2011-06-18  
为什么用数组做内部实现,可以使用LinkedList处理起来更灵活一些吧
1 楼 freish 2011-06-17  
不怕新手贴啊

相关推荐

    用数组实现的优先队列(JAVA)

    总之,`PriorityQ.java`文件可能是一个简单的数组实现优先队列的示例,通过分析这个文件,我们可以学习到如何利用数组数据结构实现优先队列,以及理解其核心的插入、删除和查找操作。同时,这也能帮助我们更好地掌握...

    用数组实现的循环队列(java)

    通过学习这个`QueueArray`类,我们可以了解到Java中如何使用数组高效地实现循环队列,并掌握其核心操作。这个简单的数据结构在实际开发中有着广泛的应用,对于提升程序的性能和逻辑清晰度都大有裨益。

    同步java之数组与队列

    为了实现队列操作,数组队列通常需要两个额外的变量来跟踪队头和队尾。添加元素时,如果队列已满,则需要进行扩容操作;移除元素时,如果队列为空,会抛出异常。这种基于数组的队列虽然在空间效率上比链表实现的队列...

    数组实现循环队列

    java数组实现循环队列。包括入队, 出队,输出队列。 队列先入先出。

    基于Java数组实现循环队列的两种方法小结

    基于Java数组实现循环队列的两种方法小结 ...本文提供了基于Java数组实现循环队列的两种方法,并详细介绍了循环队列的定义、特点、实现方法和操作。旨在帮助读者更好地理解循环队列的实现机理和设计思想。

    Java-用数组实现栈-队列-线性列表

    Java 数组实现栈、队列和线性列表 Java 是一种广泛使用的编程语言,数组是 Java 中的一种基本数据结构。数组可以用来实现栈、队列和线性列表等数据结构。下面是使用 Java 数组实现栈、队列和线性列表的详细介绍。 ...

    数组循环队列.rar

    在普通数组队列中,一旦队列满或空,需要进行数组的重新分配,而循环队列则避免了这个过程,提升了性能。 在编程语言中,如C、C++、Java或Python,我们可以用不同的方式实现数组循环队列。例如,在C++中,可以定义...

    Java使用数组实现简单的队列操作SimpleQueue

    数据结构学习-Java使用数组实现简单的队列操作SimpleQueue,简单易懂,适合初学者。

    java数组_java_java数组_

    学习Java数组是理解Java基础的重要一步,掌握数组的使用能够帮助开发者有效地处理和操作数据,为后续的编程学习打下坚实基础。在实际开发中,合理地利用数组和集合框架,可以实现高效、稳定和可维护的代码。

    java大作业用数组进行队列排序

    现在,你已经掌握了使用Java数组进行排序和动态插入元素的基本知识。在实际编程时,可以结合这些概念完成题目所要求的大作业。当然,具体实现还需要考虑到错误处理、用户输入验证等细节,以确保程序的健壮性和用户...

    Java版数据结构代码,栈,动态数组,队列,链表,二叉树

    本资源提供了Java实现的数据结构代码,包括栈、动态数组、队列、链表和二叉树,这些都是计算机科学中最基础且重要的数据结构。 1. **栈(Stack)**:栈是一种“后进先出”(LIFO)的数据结构,常用于表达式求值、...

    Java数组相关的例子代码

    以上是Java数组的基本操作和示例,它们构成了Java编程的基础。通过理解并熟练运用这些概念,开发者可以更有效地处理数据和构建复杂的程序。在实际项目中,数组与其他数据结构(如链表、队列、栈等)一起使用,为解决...

    java队列实现(顺序队列、链式队列、循环队列)

    在实际应用中,Java提供了一些内置的队列接口和类,如Queue、Deque、ArrayDeque等,它们提供了上述操作的实现。开发者可以根据具体需求选择合适的数据结构和实现方式。例如,如果需要高效访问元素,可以选择...

    java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf

    Java 中的双端队列实现 在 Java 中,LinkedList 的内部使用双端链表队列原理实现,而 ArrayList 的内部使用双端数组队列原理实现。 Java 实现自定义双端队列可以通过链表和数组两种方式实现,双端队列可以充当单端...

    Java用数组实现循环队列的示例

    Java用数组实现循环队列的示例 本篇文章展示了如何使用Java语言通过数组实现循环队列的示例。循环队列是一种特殊的队列结构,它的队头和队尾是相连的,形成一个环形结构。这种结构可以避免队列的溢出和下溢的情况,...

    Java数组队列概念与用法实例分析

    Java数组队列是一种基于数组实现的线性数据结构,它遵循先进先出(FIFO,First In First Out)的原则。在Java中,数组队列通常用于处理数据的顺序处理,例如任务调度、消息传递等场景。以下是关于Java数组队列的一些...

    java数组-基于java实现的环形缓冲数组.zip

    在Java中,我们可以使用数组或ArrayList等集合类来实现环形缓冲数组。环形缓冲数组的设计灵感来自于环形队列,它提供了一种在有限空间内循环存放元素的方式,具有先进先出(FIFO)的特性。 环形缓冲数组的基本概念...

    数组队列学习代码:队列和环形队列

    普通队列 1)将尾指针往后移:rear+1,当front==rear【空】 2)若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数中组元素中,否则无法存入数据。rear==maxSize-1[队列满] 环形队列 1)front变量的...

Global site tag (gtag.js) - Google Analytics