数据结构
package recoding.queue;
class DATA {
String key;
String name;
}
节点结构
/**
*
*/
package recoding.queue;
/**
* @author Brighten
*
*/
class SQ {
public static final int MAX = 100;//队列最长长度
DATA[] data = new DATA[MAX];
int head;//头结点指向的数据
int tail;//尾节点指向的数据
}
实现的API
/**
*
*/
package recoding.queue;
/**
* @author Brighten
*
*/
public class QueueAPI {
SQ intit(){//初始化队列
SQ S = new SQ();
if(S!=null){//如果S不为空 将其置为空
S.head = 0;//指向第一个 null
S.tail = 0;//指向第一个 null
}
return S;
}
boolean isEmpty(SQ S){//判断队列是否为空
if(S.head==S.tail){
return true;
}
return false;
}
boolean isFull(SQ S){//判断队列是否为满
if(S.tail == SQ.MAX){
return true;
}
return false;
}
void clear(SQ S){//清空队列
S.head = 0;
S.tail = 0;
}
void free(SQ S){//释放内存
if(S!=null){
S=null;
}
}
int add(SQ S,DATA addData){//添加数据(在队列尾)
if(S.tail == SQ.MAX){
System.out.println("队列已满!操作失败");
return 0;
}
else {
S.data[S.tail++] = addData;
return 1;
}
}
DATA remove(SQ S){//在队列首部删除 一个节点
if(S.head == S.tail){
System.out.println("队列为空 ,操作失败!");
System.exit(0);
}
else {
return S.data[S.head++];
}
return null;
}
}
欢迎拍砖~