`
pda158
  • 浏览: 193054 次
社区版块
存档分类
最新评论

数据结构之队列的java实现

阅读更多

 队列在计算机术语中使用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
 
10
13
分享到:
评论
1 楼 EXvision 2014-03-10  
JDK的LinkedList就是实现了Queue及Deque的队列。

相关推荐

    Java队列实现,数据结构

    在这个Java队列实现的数据结构作业练习中,我们将会探讨如何使用Java来创建一个简单的队列,并分析`Queue.java`和`Node.java`这两个文件可能包含的内容。 首先,`Queue.java`很可能是实现队列接口或类的文件。在...

    java队列模拟实现

    Java队列模拟实现是一个典型的计算机科学中的数据结构应用,它主要涉及了Java编程语言和队列数据结构。在这个工程中,开发者已经创建了一个基于图形用户界面(GUI)的应用程序,用于演示和操作队列的各种功能。以下...

    用Java实现数据结构中的队列

    在计算机科学中,数据结构是组织、存储和处理数据的方式,...通过理解这些基本概念和代码示例,你可以轻松地在Java项目中实现和使用队列数据结构。记住,选择哪种实现取决于具体的需求,如性能、内存使用和功能需求。

    Java语言编写的数据结构-队列实现

    Java作为一种广泛使用的编程语言,提供了丰富的库支持来实现各种数据结构。在这个主题中,我们将深入探讨Java中队列的实现,包括顺序队列(SqQueueCycle)和链队列(LinkQueue)。 1. **队列的基本概念** 队列是一...

    数据结构JAVA实现

    在这个名为“数据结构JAVA实现”的压缩包中,我们可以看到作者提供了三种重要的数据结构——链表、有序二叉树和队列的Java代码实现。 首先,让我们详细探讨链表。链表是一种线性数据结构,与数组不同,它不连续存储...

    数据结构:链队列

    链队列,顾名思义,是基于链表实现的队列数据结构。队列是一种遵循“先进先出”(FIFO,First In First Out)原则的数据结构,类似于现实生活中的排队等待。在链队列中,元素按照加入的顺序排列,第一个加入的元素被...

    数据结构——队列的实现

    3. 高级数据结构实现:如Java的`java.util.Queue`接口,提供了多种队列实现,如`ArrayDeque`(基于数组的双端队列)、`LinkedList`(链表实现)等。 队列的应用场景: 1. 打印机任务调度:新任务入队,完成的任务出...

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

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

    java实现数据结构

    下面将详细介绍Java中实现链表、栈、队列、优先级队列以及哈希表这些基本数据结构的方法。 首先,我们来看链表。链表是一种线性数据结构,其中的元素不连续存储,而是通过指针连接。Java中的`LinkedList`类实现了`...

    常用数据结构(堆栈,队列,列表)JAVA代码

    在这个主题中,我们将深入探讨Java实现的三种基本数据结构:堆栈(Stack)、队列(Queue)和列表(List)。这些概念是计算机科学的核心部分,对理解和解决复杂问题至关重要。 1. **堆栈(Stack)**: - 堆栈是一种...

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

    Java中的队列是一种数据结构,它遵循先进先出(FIFO)原则,即最先插入的元素将是最先被删除的。在Java中,队列的实现主要有三种:顺序队列、链式队列和循环队列。下面我们将详细探讨这三种队列的实现方式。 1. **...

    数据结构与算法代码详解JAVA版

    本资源"数据结构与算法代码详解JAVA版"聚焦于使用Java语言来理解和实现这些核心概念。 首先,数据结构是组织和存储数据的方式,它为高效地执行各种操作提供了便利。常见的数据结构包括数组、链表、栈、队列、树(如...

    java-数据结构代码实现

    本资料包“java-数据结构代码实现”提供了使用Java语言实现数据结构的实例,旨在帮助开发者加深对数据结构的理解并提升编程技能。 1. **链表**:链表是一种动态数据结构,其元素在内存中不是顺序排列的。Java中的...

    JAVA基本5种数据结构的实现。

    队列是一种先进先出(FIFO)的数据结构,`Queue.java`和`QueueApp.java`可能实现了这一概念。在Java中,可以使用`java.util.Queue`接口及其实现如`LinkedList`来创建队列。队列的主要操作包括添加元素(enqueue)、...

    优先队列算法实现(Java)

    - 自定义优先队列可能涉及到堆的实现,例如最小堆或最大堆,或者使用其他数据结构如平衡搜索树(AVL、红黑树等)。 - 需要实现插入、删除、查找和更新等操作,同时确保操作的时间复杂度尽可能低,通常是O(log n)。...

    数据结构教程(java语言描述)-源码和课件-李春葆

    4. **队列**:队列是一种先进先出(FIFO)的数据结构,Java中的Queue接口和LinkedList类可实现队列。队列常用于任务调度、缓冲区等。 5. **树**:树是一种非线性数据结构,包括二叉树、平衡树(如AVL树、红黑树)等...

    实用数据结构教程_Java语言描述

    学习“实用数据结构教程_Java语言描述”这份资料,你将能够深入理解这些数据结构的实现原理,并学会如何在Java程序中应用它们。通过实例和练习,你可以提升解决问题的能力,为成为一名优秀的Java开发者打下坚实基础...

    JAVA 模拟队列的实现

    本课程设计旨在通过模拟队列的实现,帮助学习者深入理解Java编程以及队列数据结构的运作原理。 队列作为一种线性数据结构,遵循“先进先出”(FIFO)原则,即最早插入的元素最先被移除,而最近插入的元素则在队尾等待...

Global site tag (gtag.js) - Google Analytics