0
私はキューを学ぶとき、私はいくつかの問題を発見した、ここで私のコードと結果です。誰かが私が問題を解決するのを助けることを願っています、ありがとう! import java.util.Scanner;ここでキューのデータの出力
public class Test{
public static void main(String[] args){
SQType sq = new SQType();
Data data1;
Scanner in = new Scanner(System.in);
SQType s = sq.SQInit(); //初始化队列
System.out.println("入队列操作:");
System.out.println("输入姓名 年龄进行操作:");
do{
Data data = new Data();
data.name = in.next();
data.age = in.nextInt();
if(data.name.equals("0")){
break;
}
else{
sq.InSQType(s,data);
}
}while(true);
String temp;
System.out.println("出队列操作,按任意非0键继续:");
temp = in.next();
while(!temp.equals("0")){
data1 = sq.OutSQType(s);
System.out.printf("出队列的数据为(%s %d)",data1.name, data1.age);
temp = in.next();
}
System.out.println("测试结束!");
sq.SQTypeFree(s);
}
}
class Data{
String name;
int age;
}
class SQType{
private static final int QUEUELEN = 15;
private Data[] data = new Data[QUEUELEN];
private int head;
private int tail;
SQType SQInit(){
SQType s;
if((s = new SQType()) != null){ //申请内存
s.head = 0; //设置队头
s.tail = 0; //设置队尾
return s;
}
else{
return null;
}
}
int SQTypeIsEmpty(SQType s){ //判断是否为空队列
int temp = 0;
if(s.head == s.tail){
temp = 1;
}
return temp;
}
int SQTypeIsFull(SQType s){ //判断是否为满队列
int temp = 0;
if(s.tail == QUEUELEN){
temp = 1;
}
return temp;
}
void SQTypeClear(SQType s){ //清空队列
s.head = 0;
s.tail = 0;
}
void SQTypeFree(SQType s){
if(s != null){
s = null;
}
}
int InSQType(SQType s, Data data){ //数据入队列
if(s.tail == QUEUELEN){
System.out.println("队列已满!操作失败!");
return 0;
}
else{
s.data[s.tail++] = data;
return 1;
}
}
Data OutSQType(SQType s){ //数据出队列
if(s.head == 0){
System.out.println("队列为空!操作失败!");
return null;
}
else {
return s.data[s.head++];
}
}
Data PeekSQType(SQType s){ //读取队列数据
if(SQTypeIsEmpty(s) == 1){
System.out.println("空队列!");
return null;
}
else{
return s.data[s.head];
}
}
int SQTypeLen(SQType s){ //计算队列长度
int temp;
temp = s.tail - s.head;
return temp;
}
}
は結果であり、キューがデータを読み込むことができますが、出力OutSQTypeでデータ
[NullPointerExceptionとは何か、それを修正する方法は?](http://stackoverflow.com/questions/218384/what- –
これらの画像の代わりに質問にあなたのコードをテキストとして入れることができますか? –