📄 duilie.c
字号:
#include "stdio.h"
#include "stdlib.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
typedef int Status;
typedef int QElemType;
#define MAXQSIZE 5
/*
队列结构及操作实现
*/
typedef struct {
QElemType *base;
int front;
int rear;
} SqQueue;
/*
初始化队列
*/
Status InitQueue(SqQueue &q) {
q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));
if(!q.base) exit(OVERFLOW);
q.rear=q.front=0;
return OK;
}
/*
求队长
*/
int QueueLength(SqQueue q) {
return (q.rear+MAXQSIZE-q.front)%MAXQSIZE;
}
/*
进队
*/
Status EnQueue(SqQueue &q,QElemType e) {
if( (q.rear+1)%MAXQSIZE==q.front ) return ERROR; //queue full
q.base[q.rear]=e;
q.rear=(q.rear+1)%MAXQSIZE;
return OK;
}
/*
出队
*/
Status DeQueue(SqQueue &q,QElemType &e) {
if(q.rear==q.front) return ERROR;
e=q.base[q.front];
q.front=(q.front+1)%MAXQSIZE;
return OK;
}
/*
打印队列值
*/
void DisplayQueue(SqQueue& q) {
int count=q.front;
printf("the Queue is: ");
while(count!=q.rear) {
printf("%d ",(QElemType)q.base[count]);
count++;
if(count>=MAXQSIZE) {
count=count%MAXQSIZE;
}
}
printf("\n");
}
/*
测试队列各操作
*/
int main() {
SqQueue q;
QElemType e;
InitQueue(q);
EnQueue(q,0);
EnQueue(q,1);
EnQueue(q,2);
EnQueue(q,3);
DisplayQueue(q);
DeQueue(q,e);
printf("出队操作后,队列内容为:");
DisplayQueue(q);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -