sqqueue.cpp

来自「各种算法的c语言程序」· C++ 代码 · 共 85 行

CPP
85
字号
#include"SqQueue.h"

int InitQueue(SqQueue *Qp)
{
   Qp->base=(TYPE *)malloc(sizeof(TYPE)*QUEUE_SIZE);
   if(!Qp->base){
      cout<<"存储分配失败!"<<endl;
      Qp->base=NULL;
      return FALSE;
   }
   Qp->front=0;
   Qp->rear=0;
   cout<<"队列已经初始化!"<<endl;
   return TRUE;
}//InitQueue

int DestroyQueue(SqQueue *Qp)
{
if(!Qp->base){
   cout<<"队列未初始化!"<<endl;
   return FALSE;
   }
   free(Qp->base);
   Qp->base=NULL;
   cout<<"队列已经被销毁!"<<endl;
   return TRUE;
}//DestroyQueue

int QueueDisplay(SqQueue Qp)
{
int i;
if(!Qp.base){
   cout<<"队列未初始化!"<<endl;
   return FALSE;
   }
if(Qp.front==Qp.rear){
   cout<<"队列为空队列!"<<endl;
   return FALSE;
   }
for(i=0;i<GetLength(Qp);i++){
   cout<<Qp.base[(Qp.front+i)%QUEUE_SIZE];
   cout<<' ';
   }
   cout<<endl;
   return TRUE;
}//QueueDisplay

int GetLength(SqQueue Qp)
{
if(!Qp.base){
   cout<<"队列未初始化!"<<endl;
   return ERROR;
   }
return (Qp.rear-Qp.front+QUEUE_SIZE)%QUEUE_SIZE;
}//GetLength

int EnQueue(SqQueue *Qp,TYPE ele)
{
if(!Qp->base){
   cout<<"队列未初始化!"<<endl;
   return FALSE;
   }
if((Qp->rear+1)%QUEUE_SIZE==Qp->front){
   cout<<"队列已满"<<endl;
   return FALSE;
   }
   Qp->base[Qp->rear]=ele;
   Qp->rear=(Qp->rear+1)%QUEUE_SIZE;
   return TRUE;
}//EnQueue

int DeQueue(SqQueue *Qp)
{
if(!Qp->base){
   cout<<"队列未初始化!"<<endl;
   return FALSE;
   }
if(Qp->front==Qp->rear){
   cout<<"队列为空队列!"<<endl;
   return FALSE;
   }
   Qp->front=(Qp->front+1)%QUEUE_SIZE;
   return TRUE;
}//DeQueue

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?