import java.util.Scanner;
class DATA4{
String name;
int age;
}
class SQType{
static final int QUEUELEN=15; //队列长度
DATA4[] data=new DATA4[QUEUELEN];//数据元素
int head;//队头
int tail;//队尾
//初始化队列
SQType SQTypeInit(){
SQType q;
if((q=new SQType())!=null){//申请内存空间
q.head=0;//设置队头
q.tail=0;//设置队尾
return q;//返回空队列,队头 = 队尾时表示这是一个空队列
}
return null;
}
//判断队列是否是空队列
boolean SQTypeIsEmpty(SQType q){
boolean temp=false;
// 判断队头是否等于队尾,是则返回true,否则返回false
if(q.head==q.tail) temp=true;//返回true,表示是空队列
return temp;
}
//判断队列是否已满
boolean SQTypeIsFull(SQType q){
boolean temp=false;
if(q.tail==QUEUELEN) temp=true;//当队尾等于队长,表示队列已满
return temp;
}
//清空队列
void SQTypeClear(SQType q){
//队头队尾都设为0表示队列是空队列
q.head=0;
q.tail=0;
}
//释放队列
void SQTypeFree(SQType q){
if(q!=null){
q=null;//释放内存空间
}
}
//入队
int InSQType(SQType q,DATA4 data){
if(q.tail==QUEUELEN){//判断队列是否满了,满了不能入队
System.out.println("队列已满!");
return 0;//返回入队失败
}
q.data[q.tail++]=data;//入队在队尾,将元素入队列
return 1;
}
//出队
DATA4 OutSQType(SQType q){
if(SQTypeIsEmpty(q)){//判断队列是否为空,空了直接退出
System.out.println("队列已空!");
System.exit(0);
}
return q.data[q.head++];//出队在队头,将元素出队列
}
//读节点数据
DATA4 PeekSQType(SQType q){
if(SQTypeIsEmpty(q)){//判断队列是否为空,空队列则直接返回null
System.out.println("空队列!");
return null;
}
return q.data[q.head];//返回队头数据
}
//计算队列长度
int SQTypeLen(SQType q){
int temp;
temp=q.tail-q.head;//队列长度=队尾-队头
return temp;
}
}