#include"stdio.h"
#define M 5
struct dl{
int a[M],front,rear;//队列 头 尾
}d;
void rd(struct dl *d);
void cd(struct dl *d);
void out(struct dl *d);
void main()
{
int gn,js=0;
d.front=d.rear=0;
for(;js!=1;)
{
printf("1 入队\n");
printf("2 出对\n");
printf("3 打印队\n");
printf("0 退出\n");
printf("功能:");
scanf("%d",&gn);
switch(gn)
{
case 1:
rd(&d);
printf("\n\n");
break;
case 2:
cd(&d);
printf("\n\n");
break;
case 3:
out(&d);
printf("\n\n");
break;
case 0:
break;
}
}
}
void rd(struct dl *d)
{
if(d->rear==M)//因为下标时 0 开始所以最大的下标输完之后下标的变量是 M
{
printf("队满!!!\n");
}
else
{
printf("入队元素:");
scanf("%d",&d->a[d->rear]);
d->rear++;
}
}
void cd(struct dl *d)
{
if(d->front==d->rear)
{
printf("队空!!!\n");
}
else
{
printf("出队元素是%d\n",d->a[d->front]);
d->front++;
printf("出队成功!!\n");
}
}
void out(struct dl *d)
{
int j;
printf("从对头到队尾的元素为:\n");
for(j=d->front;j<d->rear;j++)
{
printf("%d\t",d->a[j]);
}
printf("\n");
}
C++入门模拟队列
猜你喜欢
转载自blog.csdn.net/dudadudadd/article/details/112556254
今日推荐
周排行