什么是队列结构:

代码实现
/**
* @PackageName
* @author:
* @date:2022/7/29
*/
public class QueueTable {
public static void main(String[] args){
SQType sq = new SQType();
DATA4 data1 ;
Scanner input = new Scanner(System.in);
SQType queue = sq.SQInit(sq);
System.out.println("入栈队列操作:请输入:姓名,年龄");
do {
DATA4 data = new DATA4();
data.name=input.next();
if (data.name.equals("0")){
break;
}else {
data.age = input.nextInt();
queue.InSQType(queue,data);
}
}while (true);
String temp = "1";
System.out.println("出队操作,按任意非0键出队列操作");
temp = input.next();
while (!temp.equals("0")){
data1 = queue.OutSQType(queue);
System.out.println("出队信息:"+data1.name+data1.age);
temp = input.next();
}
System.out.println("测试结束");
queue.SQFree(queue);
}
}
/**
* 数据元素
*/
class DATA4{
String name;
int age;
}
/**
* 队列结构
*/
class SQType{
static final int QUEUELEN = 50;
//队列数组,用来存储数据元素
DATA4[] data = new DATA4[QUEUELEN];
//队头 用来操作队列
int head;
//队尾 用来操作队列
int tail;
/**
* 初始化队列
* @param
* @return
*/
SQType SQInit(SQType q){
if (q!= null){
head = 0;
tail = 0;
return q;
}
return null;
}
/**
* 判断队列是否空
* @param q
* @return
*/
int SQIsEmpty(SQType q){
if (q.head==q.tail){
return 1;
}
return 0;
}
/**
* 判断队列是否满
* @param q
* @return
*/
int SQIsFull(SQType q){
if (q.tail==QUEUELEN){
return 1;
}
return 0;
}
/**
* 清空队列
* @param q
*/
void SQClear(SQType q){
q.head=0;
q.tail=0;
}
/**
* 释放队列存储空间
* @param q
*/
void SQFree(SQType q){
if (q != null){
q=null;
}
}
/**
* 入队
* @param q
* @param data
* @return
*/
int InSQType(SQType q,DATA4 data){
if (q.tail == QUEUELEN){
System.out.println("队列已经满了");
return 0;
}else {
//先使用再+1 ++在前是先自己+1,再使用,++在后是先使用在+1
q.data[q.tail++] = data;
return 1;
}
}
/**
* 出队
* @param q
* @return
*/
DATA4 OutSQType(SQType q){
if (q.head == q.tail){
System.out.println("空的队列");
System.exit(0);
}
//先使用再+1 ++在前是先自己+1,再使用,++在后是先使用在+1
return q.data[q.head++];
}
/**
* 读节点数据
* @param q
* @return
*/
DATA4 PeektSQType(SQType q){
if (SQIsEmpty(q)==1){
System.out.println("空的队列");
return null;
}
return q.data[q.head];
}
int SQLen(SQType q){
return q.tail-q.head;
}
}
通过理论,实践相结合,将更好掌握队列的知识,并能够很好应用