java 数据库 队列_数据结构之队列的Java实现

本文介绍了队列作为数据结构的原理,强调其先进先出(FIFO)特性,并通过Java代码展示了数组和链表两种方式实现队列的基本操作,如插入、删除和查看队首元素。文章还提供了示例程序的运行结果。
摘要由CSDN通过智能技术生成

本文由广州疯狂软件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

疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值