其他分享
首页 > 其他分享> > 2021-04-23

2021-04-23

作者:互联网

链式队列最全源码(包括定义链式队列的结点、定义链式队列结构体、入队、出队等等):

如果有错误的地方,希望大佬们批评指正(卑微)!

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef int QueueData;
typedef struct node {           //定义链式队列的结点
	QueueData data;
	struct node* link;
}QueueNode;
typedef struct {                //定义链式队列结构体
	QueueNode* rear, * front;
}LinkQueue;
void InitQueue(LinkQueue* q) {    //初始化链队列
	q->rear = q->front = (QueueNode*)malloc(sizeof(QueueNode));
	if (!q->front) exit;
	q->front->link = NULL;
}
int GetFront(LinkQueue* q, QueueData* x) {  //取队头元素,默认front木有数据
	if (q->front == q->rear) exit;
	else (*x) = q->front->link->data;
	return 1;
}
int EnQueue(LinkQueue* q, QueueData x) {     //入队
	QueueNode* p = (QueueNode*)malloc(sizeof(QueueNode));
	p->data = x;
	p->link = NULL;
	q->rear->link = p;
	q->rear = p;
	return 1;
}
int DeQueue(LinkQueue* q, QueueData* x) {    //出队
	if (q->front == q->rear) return 0;
	QueueNode* p = q->front->link;
	(*x) = p->data;       //保存队头值
	q->front->link = p->link;  //新队头
	if (q->rear = p->link) q->front = q->rear;
	free(p);
	return 1;
}

我会一直保持更新的哦!

如果对大家有所帮助,希望大家点赞、评论、收藏、转发,这将是我努力的动力!

标签:QueueData,04,23,LinkQueue,link,2021,front,QueueNode,rear
来源: https://blog.csdn.net/weixin_46941724/article/details/116076429