void InitQueue(SqQueue *&q) //初始化队列;
{
q = new SqQueue;
for(int i = 0;i<MaxSize;i++)
{
// cout<<"sd"<<endl;
q->name[i] = new char;
}
// cout<<"sd"<<endl;
q->front = 0;
q->rear = 0;
}
void DestroyQueue(SqQueue *&q) //销毁队列;
{
q->front = (q->rear + 1) % MaxSize;
}
bool QueueEmpty(SqQueue *q) //判定队列为空时返回true; 否则返回false;
{
if(q->front == q->rear)return true;
return false;
}
bool enQueue(SqQueue *&q,ElemType *e) // e 入队;成功入队返回true; 否则返回false;
{
if(q->front == (q->rear+1)%MaxSize)return false;
q->name[q->rear] = e;
q->rear = (q->rear+1)%MaxSize;
//cout << "-----"<<q->rear<<" "<< q->name[q->rear]<<endl;
// q->name[q->rear] = e;
return true;
}
bool deQueue(SqQueue *&q,ElemType *&e) //出队,返回出队元素e,且成功出队返回true,否则返回false;
{
if(q->front == q->rear)return false;
e = q->name[q->front];
q->front = (q->front+1)%MaxSize;
return true;
}