概述
具体应用
顺序实现
溢出问题
解决方案
队列状态判断
具体实现
定义
初始化
求队长
入队
出队
取队头
代码整合
//循环队列的实现
#define maxsize 100;
//类型定义
typedef struct{int *data;//存储数据的空间int head;//队头int rear;//队尾
}squeue; squeue q;//定义顺序队 //初始化
int init(squeue &q){q.data=new int[maxsize];//开辟数组空间 if(!q.data) return 0;//状态判断:data为空,内存分配失败!!!!q.rear=q.head=0;//初始队头与队尾 return 1;
}//求队长
int len(squeue q){return (q.rear-q.head+maxsize)%maxsize;
}//入队
int enqueue(squeue &q,int e){//非法处理if((q.rear+1)%maxsize==q.head) return 0;//入队:队尾入队 q.data[q.rear]=e;//更新 q.rear=(q.rear+1)%maxsize;return 1;
} //出队
int dequeue(squeue &q){//非法处理if(q.rear==q.head) return 0;//出队:队头出队 int e=q.data[q.head];//更新 q.head=(q.head+1)%maxsize;return e;
}//取队头元素
int getHead(squeue q){if(q.head==q.rear) return 0;//未插入元素else return q.data[q.head];
}