📄 队列.txt
字号:
#include "stdio.h"
#include "alloc.h"
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define TRUE 1
#define FALSE 0
typedef int Status;
#define MAX 10
typedef int ElemType;
typedef struct
{ElemType *Elem;
int front;
int rear;
}CirQueue;
Status InitQueue(CirQueue &Q)
{Q.Elem=(ElemType *)malloc(MAX*sizeof(ElemType));
if(!Q.Elem) return(OVERFLOW);
Q.front=Q.rear=0;
return OK;
}
Status EnQueue(CirQueue &Q,ElemType e)
{ if((Q.rear+1)%MAX==Q.front)
return ERROR;
Q.Elem[Q.rear]=e;
Q.rear=(Q.rear+1)%MAX;
return OK;
}
Status DeQueue(CirQueue &Q,ElemType &e)
{ if(Q.rear==Q.front) return ERROR;
e=Q.Elem[Q.front];
Q.front=(Q.front+1)%MAX;
return OK;
}
void QueueOutput(CirQueue Q)
{int i;
for(i=Q.front;i!=Q.rear;i=(i+1)%MAX)
printf("%5d",Q.Elem[i]);
printf("\n");
}
Status GetHead(CirQueue Q,ElemType &e) /*取列头*/
{if (Q.front==0 && Q.rear==0) return ERROR;
e=Q.Elem[Q.front];
return OK;}
Status QueueLength(CirQueue Q) /*队列求长*/
{return (Q.rear-Q.front +MAX)%MAX;}
Status ClearQueue(CirQueue &Q) /*清空队列*/
{Q.front=Q.rear=0;
return OK;}
main()
{CirQueue Q;
ElemType e;
int i;
InitQueue(Q);
for(i=1;i<=5;i++) EnQueue(Q,i);
GetHead(Q,e);
printf("\nThe Head Element:%d\n",e);
printf("Length:%d\n",QueueLength(Q));
QueueOutput(Q);
DeQueue(Q, e); QueueOutput(Q);
for(i=1;i<=3;i++) DeQueue(Q, e);
QueueOutput(Q);
for(i=6;i<=13;i++) EnQueue(Q,i);
QueueOutput(Q);
ClearQueue(Q);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -