队列的顺序存储结构(循环队列)和操作实现。

2025-09-26 05:52:27

1、一、要求

队列的顺序存储结构(循环队列)和操作实现。

队列的顺序存储结构(循环队列)和操作实现。

2、二、代码

#include

#include

#define OVERFLOW -2

#define MAXQSIZE 100  /*队列的最大长度*/

typedef struct {

    int *base;   // 队列的元素空间头指针指示器

    int  front;                  

    int  rear;   /*尾指针指示器*/

}SqQueue;       

int InitQueue(SqQueue &Q) {//初始化操作 

 Q.base = (int * )malloc(MAXQSIZE*sizeof(int));

 if (!Q. base) exit (OVERFLOW);  

 Q.front=Q.rear =0;

 return 1;

}

int EnQueue(SqQueue &Q) {//入队操作 

 int e;

 if ((Q. rear+ 1) % MAXQSIZE == Q. front)

 { 

  printf("队列已满,不能进队\n");

  return -1;//满标志 

 } 

 printf("请输入进队元素:");

 scanf("%d",&e);

 Q.base[Q.rear] = e;//进队

 Q.rear = (Q. rear + 1) % MAXQSIZE;//队尾指针后移

 return 1;

}

int DeQueue (SqQueue &Q) {//出队段佛操作 

 int e;

 if (Q. front == Q. rear) { 

  printf("队列已经为空\n");

  return -1;

 }

 e = Q. base[Q. front];//队头出队

 printf("%d  出队\n",e);

 Q.front = (Q.front + 1) % MAXQSIZE;//队头下标后移

 return 1;

}

void tip()

{  

 printf("*************\n");

 printf("*输入1 进队 *\n");

 printf("*输入2 出队 *\n");

 printf("*输入0 退出 *\n");

 printf("*请选择:    *\n");

 printf("*************\n");

}

int main()

 int k;

 SqQueue Q;

 InitQueue(Q);//初始化

 tip();

 while(scanf("%d",&k),k)

 {

  switch(k)

  {

  case 1:

   EnQueue(Q);

   tip();

   printf("操作完毕\n");

   break;

 矿艺 case 2:

   DeQueue(Q);

   tip();

   printf("操作完毕\n"蚂购耍);

   break;

  }

 }

 return 0;

}

队列的顺序存储结构(循环队列)和操作实现。

3、三、运行结果

队列的顺序存储结构(循环队列)和操作实现。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢