队列:队列是一种先进先出的数据结构,它的元素只能在一端增加,该端称为rear,元素的删除只能在另一端进行,这一端称为front.
1.基于数组的实现(循环队列)
public class QueueClass {
private int maxQueueSize;//队列的大小
private int count; //计数器
private int queueFront; //队列的头元素
private int queueRear; //队列的尾元素
private int[] list;
public QueueClass(){
maxQueueSize=100;
queueFront=0;
queueRear=maxQueueSize-1;//队尾初始化为最后一个元素
count=0;
list=new int[maxQueueSize];
}
public void initializeQueue(){
for(int i=queueFront;i<queueRear;i=(i+1)%maxQueueSize){
list[i]=0;
}
queueFront=0;
queueRear=maxQueueSize-1;
count=0;
}
//判断是否为空队列
public boolean isEmptyQueue(){
return count==0;
}
//判断是否为满队列
public boolean isFullQueue(){
return count==maxQueueSize;
}
//取队列的头元素
public int fornt(){
if(isEmptyQueue()){}
return list[queueFront];
}
//取队尾元素
public int back(){
if(isEmptyQueue()){}
return list[queueRear];
}
//入队
public void addQueue(int newElement){
if(isFullQueue()){}
queueRear=(queueRear+1)%maxQueueSize;
count++;
list[queueRear]=newElement;
}
//出队
public void deleteQueue(){
if(isEmptyQueue()){}
count--;
list[queueFront]=0;
queueFront=(queueFront+1)%maxQueueSize;
}
}
2.链式队列
//节点
class QueueNode {
int info;
QueueNode link;
}
public class LinkedQueueClass {
private QueueNode queueFront;//队头
private QueueNode queueRear; //对尾
public void initializeQueue() {
queueFront = null;
queueRear = null;
}
//判断是否为空队列
public boolean isEmptyQueue() {
return queueFront == null;
}
//判断是否为满队列
public boolean isFullQueue() {
return false;
}
//取队列的头元素
public int fornt() {
if (isEmptyQueue()) {}
return queueFront.info;
}
//取队尾元素
public int back() {
if (isEmptyQueue()) {}
return queueRear.info;
}
//入队
public void addQueue(int newElement) {
QueueNode newNode;
newNode = new QueueNode();
newNode.info = newElement;
newNode.link = null;
if (queueFront == null) {
queueFront = newNode;
queueRear = newNode;
} else {
queueRear.link = newNode;
queueRear = queueRear.link;
}
}
//出队
public void deleteQueue() {
if (isEmptyQueue()) {}
queueFront = queueFront.link;
if (queueFront == null)
queueRear = null;
}
}
分享到:
相关推荐
全书内容浅显易懂,利用大量且丰富的图示与范例, 详解复杂的抽象理论,从最基本的数据结构概念开始 说明,再以Java工具加以诠释阵列结构、堆栈、链表 、队列、排序、查找等重要的概念,引领读者抓住重 点轻松进入...
Java语言编写的数据结构-队列实现,包括顺序队列和链队列。
java基础笔记数据结构-队列,详细描述了队列的原理及其实现方式,基础数据结构。
数据结构和算法分析(java)实现中第三章知识点的总结,主要讲的是表。栈、队列的原理和实现,以及应用。一共17页。
Java基础复习笔记06数据结构-队列~~~~~~~
数据结构与算法----线性表及Java实现顺序表、链表、栈、队列 定义线性表节点的结构.pdf
《计算机科学丛书·数据结构从应用到实现(Java版)》系统地介绍了数据结构以及数据结构与对象之间的联系。主要内容包括:算法效率的输入规模、阶和大O,数据结构的无序和有序列表,队列和栈基于数组和链表的设计实例...
队列实现,数据结构作业练习参考,Java实现,环境eclipes1.8
单链队列,详细内容见博文:http://blog.csdn.net/u013071074/article/details/27641665
介绍数据结构队列(Queue)的概念、特点、优缺点、适用场景和Java示例代码
包含JWArray和JWList,分别包含顺序结构及链式结构的线性表、栈和队列操作,函数使用方便简单,可以作为简单的C语言线性表、栈和队列操作库。
用单链表形式实现队列的结构。定义基本操作:入队,出队,打印所有队列元素。
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)...
常见的数据结构:栈、队列、数组、链表、树、图、字典树(⾼效树形结构)、散列表(哈希表) Java常⽤数据结构(图解): 图⽚源⾃于: 1、栈和队列: 2、栈(stack):先进后出,删除与加⼊均在栈顶操作 栈也称为...
本书选择Java语言以面向对象的方式描述数据结构,还特别强调了封装和分解的信息隐藏原理。主要内容包括:面向对象编程的基本原理,判定算法效率的方法,堆栈、队列及其应用,对于多种递归的详细讨论,二叉树、B树、2...
常用数据结构(堆栈,队列,列表)JAVA代码
用Java实现数据结构中的队列 用Java实现数据结构中的队列
java双端队列的实现-Java实现自定义双端队列(链表和数组两种方式) 数组和链表.pdf