多语言展示
当前在线:1392今日阅读:113今日分享: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

三、运行结果

推荐信息