java实现队列 博客园_java实现队列的详细代码

一、什么是队列结构

一种线性结构,具有特殊的运算法则【只能在一端(队头)删除,在另一端(队尾)插入】。

分类:

顺序队列结构

链式队列结构

基本操作:

入队列

出队列

二:准备数据

static final  int QUEUELEN=15;

class DATA{

String name;

int age;

}

class SQType{

DATA  date[]=new DATA[QUEUELEN];

int head;

int tail;

}

在类SQType中data为数据元素,head为队头序号,tail为队尾序号,当head为0时队为空,当tail为QUEUELEN时表示队列已满。

三:初始化队列

在使用队列前首先要创建个空队列,即初始化队列。

按符号常量QUEUELEN指定的大小申请一片内存空间用来保存对列中的数据。

设置head=0和tail=0,表示一个空队列。

SQType  SQTypeInit(){

SQType q;

if((q=new  SQType())!=null){

q.head=0;

q.tail=0;

return q;

}

else{

return null;

}

}

四:判断空队列

int SQTypeIsEmpty(SQType q){

int temp=0;

if(q.head=q.tail){

temp=1;

}

return temp;

}

//判断队列是否满了

int SQTypeIsNull(SQType q){

int temp=0;

if(q.head=QUEUELEN){

temp=1;

}

return temp;

}

//清空队列

void SQTypeClear(SQType q){

q.head=0;

q.tail =0;

}

//释放空间

void SQTypeFree(SQType q){

if(q!=null){

q=null;

}

}

//入队列

int IntSQType(SQType q,DATA data){

if(SQTypeIsEmpty(q)==1){

System.out.println("队列已满,操作失败");

return 0;

}

else{

q.data[q.tail++]=data;

return 1;

}

}

//出队列

DATA OutSQType(SQType q){

if(SQTypeIsEmpty(q)==1){

System.out.println("队列为空");

return null;

}

else{

return q.data[q.head++];

}

return null;

}

//读取节点

DATA PeekSQType(SQType q){

if(SQTypeIsEmpty(q)==1){

System.out.println("队列为空");

return null;

}

else{

return q.data[q.head];

}return null;

}

//计算队列长度

int SQTypeLen(SQType q){

int temp;

temp=q.tail-q.head;

return temp;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值