#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct LinkNode
{
int data;
struct LinkNode *next;
}LinkNode;
typedef struct
{
LinkNode *front,*rear;
}LinkQueue;
/*初始化*/
void Init(LinkQueue *Q)
{
Q->front = Q->rear = (LinkNode*)malloc(sizeof(LinkNode));
Q->front->next = NULL;
}
/*判断队列是否为空*/
bool JudgeEmpty(LinkQueue *Q)
{
if(Q->front == Q->rear)return true;
else return false;
}
/*入队*/
void EnQueue(LinkQueue *Q,int number)
{
LinkNode *S = (LinkNode*)malloc(sizeof(LinkNode));
S->data = number;
S->next = NULL;
Q->rear->next = S;
Q->rear = S;
}
/*出队*/
void DeQueue(LinkQueue *Q)
{
Q->front = Q->front->next;
}
int main(int argc, char const *argv[]) {
LinkQueue Q;
int number;
printf("请输入数字 -1结束:");
scanf("%d",&number);
Init(&Q);
while (number != -1) {
EnQueue(&Q,number);
scanf("%d",&number);
}
while (!JudgeEmpty(&Q)) {
DeQueue(&Q);
printf("%d ",Q.front->data);
}
return 0;
}
王道考研 ++++ 链表实现队列(C语言)
猜你喜欢
转载自blog.csdn.net/WX_1218639030/article/details/98102737
今日推荐
周排行