(数据结构与算法分析 四)------数组循环队列的实现( Java语言描述)
来源:互联网 发布:软件停服通知 编辑:程序博客网 时间:2024/04/30 18:22
对于队列,他的重要性不亚于栈,而且往往队列和栈是配合着使用的,因为栈是后进先出,而队列是先进先出,这就导致了很多问题可能通过这两个数据结构进行魂环的调用来解决,当然,对于数组实现的队列,他的入队和出队都是非常迅速的,而且通常使用的队列都不是太大的,并且有了循环队列的想法,更是是的数组实现的队列有了更好的应用,下面废话不多说,上代码
package com.bird.three;/** * @category 队列的数组实现 * @author Bird * */public class QueueArray {private Object[] theArray;private int currentSize;private int front;private int back;private static final int DEFAULT_CAPACITY = 10;/** * Construct */public QueueArray(){this(DEFAULT_CAPACITY);}public QueueArray(int capacity){theArray = new Object[capacity];makeEmpty();}public boolean isEmpty(){return currentSize == 0;}public boolean isFull(){return currentSize == theArray.length;}public void makeEmpty(){currentSize = 0;front = 0;back = -1;}/** * 插入新元素 * @param x为要插入的元素 * @exception 如果队满则抛出异常 */public void enQueue(Object x){if(isFull())throw new RuntimeException("队列已满");back = increment(back);theArray[back]= x;currentSize++;}/** * 处理队列的头尾游标,同时实现了循环队列,当游标到达数组头的时候直接赋值0转到数组头 * @param x数组的任何位置 * @return x+1;或者0(如果X为数组的头) */private int increment(int x){if(++x == theArray.length)x = 0;return x;}/** * 返回并且移除队列的头元素 * @return 队列的头元素,或者null如果队列为空 */public Object deQueue(){if(isEmpty())return null;currentSize--;Object frontItem = theArray[front];theArray[front]=null;front = increment(front);return frontItem;}}
- (数据结构与算法分析 四)------数组循环队列的实现( Java语言描述)
- 数据结构(java语言描述)-- 队列的循环数组实现
- (数据结构与算法分析 七)------优先队列中的二叉堆的实现( Java语言描述)
- (数据结构与算法分析 三)------栈的实现(包括链栈和数组实现栈 Java语言描述)
- 数据结构与算法分析—循环队列的数组实现(C语言)
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)
- 数据结构与算法(Java描述)-9、队列以及顺序循环队列的应用
- 数据结构与算法分析(Java 语言描述)(35)—— 使用两个栈实现一个队列
- 数据结构与算法分析(Java 语言描述)(36)—— 使用两个队列实现一个栈
- 数据结构与算法(Java语言描述)--栈和队列
- (数据结构与算法分析 五)------二叉查找树的实现( Java语言描述)
- (数据结构与算法分析 六)------散列表的实现( Java语言描述)
- 数据结构与算法分析(Java语言描述)(30)—— 有权图的实现
- 【IE BUG】 CSS/HTML解决在IE6浏览器下显示文字重复
- android emulator snapshot
- 差分信号
- 将工作薄中的全部N张工作表都在sheet1中建上链接
- CSS浮动属性Float介绍(转自:http://www.nowamagic.net/csszone/css_AllAboutCss.php)
- (数据结构与算法分析 四)------数组循环队列的实现( Java语言描述)
- 清除各sheet数据
- 为workbook设置焦点,专为做完所有处理后,对各个工作表光标进行设置
- Using custom client attributes
- java得到月尾字符串值
- tsung的工作原理
- Objective-C 编程语言(4)协议---非继承关系上的相似性,正式的协议,非正式的协议
- APR-客户端编程
- linux 安装cacti