标签:size void ext == enqueue def highlight div type
#include<stdio.h>
#include<malloc.h>
typedef char ElemType;
typedef struct LinkNode
{
ElemType data;
struct LinkNode *next;
}LinkNode;
typedef struct
{
struct LinkNode *front,*rear;
}LinkQueue;
void InitQueue(LinkQueue &q)
{
q.rear=q.front=NULL; //初始化队列
}
bool IsEmpty(LinkQueue q)
{
if(q.front==NULL) //判空条件:头指针是否为空
return true;
else
return false;
}
void EnQueue(LinkQueue &q,ElemType e)
{
LinkNode *s=(LinkNode*)malloc(sizeof(LinkNode));
s->data=e;
s->next=NULL;
if(IsEmpty(q)) //如果队列为空,则将头指针尾指针同时指向新插入的节点
{
q.front=s;
q.rear=s;
return ;
}
q.rear->next=s;
q.rear=s;
}
bool DeQueue(LinkQueue &q,ElemType &e)
{
if(q.front==NULL)
return false;
LinkNode *p=q.front; //p指向头指针
e=p->data;
q.front=p->next; //队列的头指针指向p指针的下一节点
if(q.rear==p) //此次是最后一个节点,队列置空
q.rear=q.front=NULL;
free(p);
return true;
}
bool HeadQueue(LinkQueue q,ElemType &e)
{
if(q.front==NULL)
return e=‘?‘;
e=q.front->data;
return true;
}
void main()
{
LinkQueue q;
InitQueue(q);
printf("The Queue is %s\n",IsEmpty(q)?"Empty":"UnEmpty");
ElemType e;
HeadQueue(q,e);
printf("Head_Queue is %c\n",e);
EnQueue(q,‘a‘);
EnQueue(q,‘b‘);
EnQueue(q,‘c‘);
HeadQueue(q,e);
printf("Head_Queue is %c\n",e);
DeQueue(q,e);
HeadQueue(q,e);
printf("Head_Queue is %c\n",e);
DeQueue(q,e);
HeadQueue(q,e);
printf("Head_Queue is %c\n",e);
DeQueue(q,e);
HeadQueue(q,e);
printf("Head_Queue is %c\n",e);
printf("The Queue is %s\n",IsEmpty(q)?"Empty":"UnEmpty");
}
标签:size void ext == enqueue def highlight div type
原文地址:https://www.cnblogs.com/-slz-2/p/13205065.html