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

 时间:2026-02-14 09:36:31

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、三、运行结果

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

  • 兰花蜜枣如何制作的
  • 形意十二形拳的搏击应用研究之龙形实战技法一
  • win7完美运行vb6.0(拖动控件迟缓等问题)
  • 绿豆汤圆的做法
  • 搜狗输入法怎么查生僻字
  • 热门搜索
    如何制作动画 迪拜旅游攻略 如何煎牛排 晚安朋友圈 如何锻炼胸肌 山茱萸泡水喝的功效 怎么盗qq密码 路由器设置页面 泰山在哪里 卡塔尔在哪里