package JavaRelatedAlgorithm;
import java.util.Scanner;
class Data{
String name;
int age;
}
class QType{
static final int QUEUELEN = 15;
Data [] data = new Data[QUEUELEN]; //队列数组
int head; //队头
int tail; //队尾
QType init(){
QType q;
if((q = new QType()) != null){
q.head = 0;
q.tail = 0;
return q;
} else {
return null;
}
}
int isEmpty(QType q){
int temp = 0;
if(q.head == q.tail)
temp = 1;
return temp;
}
int isFull(QType q){
int temp = 0;
if (q.tail == QUEUELEN)
temp = 1;
return temp;
}
void clear(QType q){
q.head = 0;
q.tail = 0;
}
void free(QType q){
if (q != null){
q = null;
}
}
int in(QType q, Data data){
if(q.tail == QUEUELEN){
System.out.println("队列已满 入队列失败!");
return 0;
} else{
q.data[q.tail++] = data;
return 1;
}
}
Data out(QType q){
if (q.head == q.tail){
System.out.println("队列已空 出队列失败!");
System.exit(0);
}else{
return q.data[q.head++];
}
return null;
}
Data peek(QType q){
if(isEmpty(q) == 1){
System.out.println("空队列!");
return null;
} else {
return q.data[q.head];
}
}
int len(QType q){
int temp;
temp = q.tail - q.head;
return temp;
}
}
public class Queue队列 {
public static void main(String[] args) {
QType q = new QType();
Data data1;
Scanner input = new Scanner(System.in);
QType s = q.init();
System.out.println("输入姓名 年龄进行入队列操作:");
do{
Data data = new Data();
data.name = input.next();
if (data.name.equals("0")){
break;
} else {
data.age = input.nextInt();
s.in(s, data);
}
}while(true);
String temp = "1";
System.out.println("出队列操作(按任意非0键进行出队列操作):");
temp = input.next();
while(!temp.equals("0")){
data1 = q.out(s);
System.out.printf("出队列的数据是(%s, %d)\n", data1.name, data1.age);
temp = input.next();
}
System.out.println("测试结束");
q.free(s);
}
}
队列
最新推荐文章于 2024-12-01 23:55:34 发布