队列在计算机术语中使用queue,和list(排)其实是一个意思。队列也是一种数据结构,类似于栈,只是与栈相反,在队列中最先插入的数据也最先被移除,即先进先出(FIFO,First In First Out)。队列可以理解成排队,比如,食堂窗口排的队,越在前面的,越早得到服务而先离开。在银行大厅的排号的机器也许就用了队列这个数据结构。在打印的时候,有“添加到队列”的选项,队列应用是很广泛的。队列的操作有:插入到队尾数据项,移除队头数据项,查看数据项等功能。下面用Java实现队列的基本功能(数组版)。
package cn.zhf.list;
public class MyQueue {
private int maxSize;//定义最大容量
private int[] qarray;//存放元素的数组
private int front;//前一个元素索引
private int rear;//后一个元素索引
private int nItems;//队列中元素的个数
//构造对象并初始化
public MyQueue(int s){
maxSize = s;
qarray = new int[maxSize];
front = 0;
rear = -1;
nItems = 0;
}
//在队列尾端插入元素
public void enqueue(int i){
if(rear == maxSize - 1){
rear = -1;
}
qarray[++rear] = i;
nItems++;
}
//删除队首元素
public int dequeue(){
int temp = qarray[front++];
if(front == maxSize){
front = 0;
}
nItems--;
return temp;
}
public int peekFront(){//取第一个元素
return qarray[front];
}
public boolean isEmpty(){
return (nItems == 0);
}
public static void main(String[] args) {
MyQueue queue = new MyQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
queue.enqueue(4);
queue.enqueue(5);
while(!queue.isEmpty()){
int i = queue.dequeue();
System.out.println(i);
}
}
}
下面是用链表实现的队列。
package cn.zhf.list;
//其中的Link和LinkList两类同栈中的相同
public class LinkQueue {
private LinkList list;
public LinkQueue(){
list = new LinkList();
}
public boolean isEmpty(){
return list.isEmpty();
}
public void insert(int id,double dd){
list.insertFirst(id, dd);
}
public Link delete(){
return list.deleteFirst();
}
public void display(){
list.displayLink();
}
public static void main(String[] args) {
LinkQueue lq = new LinkQueue();
lq.insert(12, 20.0);
lq.insert(13, 20.1);
lq.insert(14, 20.2);
lq.display();
System.out.println("-----------");
lq.delete();
lq.display();
}
}
运行结果:
14,20.2
13,20.1
12,20.0
-----------
13,20.1
12,20.0
分享到:
相关推荐
队列实现,数据结构作业练习参考,Java实现,环境eclipes1.8
用Java实现数据结构中的队列 用Java实现数据结构中的队列
Java语言编写的数据结构-队列实现,包括顺序队列和链队列。
JAVA实现链表 有序二叉树 队列的代码例子
《计算机科学丛书·数据结构从应用到实现(Java版)》系统地介绍了数据结构以及数据结构与对象之间的联系。主要内容包括:算法效率的输入规模、阶和大O,数据结构的无序和有序列表,队列和栈基于数组和链表的设计实例...
基于JAVA实现的常用数据结构代码,JAVA实现复杂度、动态数组、链表、栈、队列、二叉搜索树等
常用数据结构(堆栈,队列,列表)JAVA代码
单链队列,详细内容见博文:http://blog.csdn.net/u013071074/article/details/27641665
数据结构和算法分析(java)实现中第三章知识点的总结,主要讲的是表。栈、队列的原理和实现,以及应用。一共17页。
java基础笔记数据结构-队列,详细描述了队列的原理及其实现方式,基础数据结构。
数据结构有关队列的接口,数组形式或者是链表形式的队列实现
基于c语言数据结构中栈和队列思想的简单停车场管理系统,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车...
包含链表、 栈、 队列、优先级队列、哈希表,绝对原创总结!
关于java数据机构部分,队列的总结,队列实现及操作
java语言实现的数据结构顺序队列,部分代码:public class OrderQueue { int rear=-1; int front=0; String[]queue; public OrderQueue(int initcap)throws Exception{ if(initcap){ throw new Exception(...
数据结构Java队列PPT学习教案.pptx
java中基本的 站 队列等基本数据结构。
全书内容浅显易懂,利用大量且丰富的图示与范例, 详解复杂的抽象理论,从最基本的数据结构概念开始 说明,再以Java工具加以诠释阵列结构、堆栈、链表 、队列、排序、查找等重要的概念,引领读者抓住重 点轻松进入...