永发信息网

用c语言编一个小小的入列出列的程序

答案:2  悬赏:60  手机版
解决时间 2021-05-04 16:36
程序需要实现的效果就是假如一列队伍是5个人,2号出列了,后面的3号就补到2号位,4号补到3号位,依次类推;假如3号位有人,又有人插到3号位,那原来的3号就后退到4号位,4号退到5号,依次类推……
最佳答案

你主要是想实现队列功能吧,我给你编了一个队列,具体的出列进列可随意在主函数中操作


#include <stdio.h>
#include <malloc.h>
typedef struct QNode
{
char data;
struct QNode *next;
int Queusize;
}
QNode,*QueuePtr;//定义队列结点类型
typedef struct
{
QueuePtr front;
QueuePtr rear;
}
LinkQueue;//队列的类型
void InitQueue(LinkQueue *Q)//创建队列
{
Q->front=Q->rear=(QueuePtr)malloc(sizeof(QNode));
Q->front->next=NULL;
}
void EnQueue(LinkQueue *Q,char e)//将元素插入队列
{
QueuePtr p;
p=(QueuePtr)malloc(sizeof(QNode));
p->data=e;
p->next=NULL;
Q->rear->next=p;
Q->rear=p;
}
char DeQueue(LinkQueue *Q)//将元素出列且返回元素的位置
{
char e;
QueuePtr p;
p=Q->front->next;
e=p->data;
Q->front->next=p->next;
if(Q->rear==p)
Q->rear=Q->front;
free(p);
return (e);
}
int QueueEmpty(LinkQueue *Q)//判断队列是否为空
{
if(Q->front==Q->rear )
return 1;
else
return 0;
}


void main()
{
LinkQueue Q;
InitQueue(&Q);
EnQueue(&Q,'1');//字符1入队列
EnQueue(&Q,'2');
EnQueue(&Q,'3');
EnQueue(&Q,'4');
EnQueue(&Q,'5');
DeQueue(&Q);//最先一个元素出列也就是1出列
DeQueue(&Q);
while(!QueueEmpty(&Q))
{
printf("%c ",DeQueue(&Q));//最后剩下的元素依次出列
}

}

全部回答

堆栈

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
给QQ宠物找个配偶
万事兴大酒店怎么去啊,有知道地址的么
欢乐星园为什么进不去
基金一年能涨多少,我每月买一百块钱的基金,
手机有没有网页投nba全明星票选
喜欢一个人,要不要为他改变?
非诚勿扰张思逸qq是多少啊?
小说《坏蛋是怎样炼成的》(作者六道)现在由
有200克的盐水,含盐率是25%,加多少水,可使
钟汉良的博客谁知道阿…
请问怎么把自己制作的歌词上传到QQ音乐里面??
文件提示无法删除怎么办
怎样才能祛面部毛孔?
坏人分哪几种啊
如果小猪找到属于自己的幸福之后,选择退出娱
推荐资讯
如何修改别人做好的主题
199431223这个号值多少?
七夕的由来?七夕的由来?七夕的由来?
从陕西渭南到河北廊坊坐火车要多久?
给一年级小朋友的赠言,一年级老师激励学生认
头像改变大小
经常胃疼,每次都是吃止通药,这样对胃病有多
索爱W350的飞信怎么下载 手机网站 看清楚型号
京山石庙加油站我想知道这个在什么地方
英文原声电影经典台词,求一些英语电影里的经
武装机甲动漫的歌曲
2012什么时候能看
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?