📄 ch3_2.c
字号:
#include <stdio.h>
#define QUEUE_SIZE 10 /* 队列的大小 */
int ADDQ(int);
int DELETEQ(void);
int Q[QUEUE_SIZE]; /* 声明队列为数组 */
int front=-1; /* 队列的前端 */
int rear=-1; /* 队列的後端 */
void main()
{
int loop=1; /* 循环控制 */
int select; /* 选项设置 */
int temp; /* 存放输入数据 */
while(loop)
{
printf("1.加入数据 2.删除数据 3.结束==> ");
scanf("%d", &select); /* 读入选项 */
switch(select)
{
case 1: /* 将输入数据加入队列 */
printf("请输入要加入队列的数据==> ");
scanf("%d", &temp);
if(ADDQ(temp) == -1)
printf("队列已满,无法加入此条数据!\n");
break;
case 2: /* 从队列中取出一条数据 */
if((temp=DELETEQ()) == -1)
printf("队列是空的.\n");
else
printf("队列取出的数据==> %d\n", temp);
break;
case 3: /* 结束 */
loop=0;
break;
default: /* 选项错误 */
printf("输入错误.\n");
break;
}
printf("\n");
}
/* 输出队列剩余的数据 */
if(front == rear)
printf("队列中已无数据.\n");
else
{
printf("队列剩余的数据==> ");
while((temp=DELETEQ()) != -1)
printf("%d ", temp);
printf("\n");
}
}
int ADDQ(int item) /* 加入数据 */
{
if(rear >= QUEUE_SIZE-1) /* 检查队列是否已满了 */
return -1;
rear++; /* 将rear指向数据加入的位置 */
Q[rear]=item; /* 将数据存入队列中 */
}
int DELETEQ() /* 删除数据 */
{
if(front == rear) /* 检查队列是否为空的 */
return -1;
front++; /* 将front指向数据被删除的位置 */
return Q[front]; /* 将被删除的数据返回 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -