标签搜索

目 录CONTENT

文章目录

队列的基本操作.md

小小城
2021-08-22 / 0 评论 / 0 点赞 / 4 阅读 / 1,873 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

队列的基本操作
DQueue.h"

#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int QDataType;

typedef struct QNode 
{
	QDataType data;
	struct QNode *next;
}	QNode;

typedef struct Queue
{
	QNode *front;
	QNode *rear;
}	Queue;

void QueueInit(Queue *pQueue);//初始化

static QNode * CreateNode(QDataType data);//创建节点

void QueuePush(Queue *pQueue, QDataType data);//入队

void QueuePop(Queue *pQueue);//出队

QDataType QueueFront(Queue *pQueue);//查看队首元素

int QueueSize(const Queue *pQueue);//元素个数

DQueue.c

#include"DQueue.h"

void QueueInit(Queue *pQueue)//初始化
{
	pQueue->front = pQueue->rear = NULL;
}

static QNode * CreateNode(QDataType data)//创建节点
{
	QNode *node= (QNode *)malloc(sizeof(QNode));
	node->data = data;
	node->next = NULL;
	return node;
}

void QueuePush(Queue *pQueue, QDataType data)//入队
{
    QNode * node=CreateNode(data);
	if (pQueue->front == NULL)
	{
		pQueue->front = pQueue->rear = node;
	}
	pQueue->rear->next  = node;
	pQueue->rear = node;
}

void QueuePop(Queue *pQueue)//出队
{
	if (pQueue->front == NULL)
	{
		pQueue->rear = NULL;
	}
	QNode * cur = pQueue->front;
	pQueue->front = cur->next;
	free(cur);
}

QDataType QueueFront(Queue *pQueue)//查看队首元素
{
	return pQueue->front->data;
}

int QueueSize(const Queue *pQueue)//元素个数
{
	QNode *cur=pQueue->front ;
	int count = 0;
	while (cur )
	{
		count++;
		cur = cur->next;
	}
	return count;
}

main.c

#define _CRT_SECURE_NO_WARNINGS
#include<Windows.h>

#include"DQueue.h"//队列


//队列基本操作
void DuiLie()
{
	Queue pQueue;
	QueueInit(&pQueue);//初始化

	QueuePush(&pQueue, 1);//入队
	QDataType a= QueueFront(&pQueue);//查看队首元素
	printf("%d ", a);

	QueuePush(&pQueue, 2);//入队
	 a = QueueFront(&pQueue);//查看队首元素
	printf("%d ", a);

	QueuePush(&pQueue, 3);//入队
	a = QueueFront(&pQueue);//查看队首元素
	printf("%d\n", a);

	int b= QueueSize(&pQueue);//元素个数
	printf("%d ", b);

	QueuePop(&pQueue);//出队
	b = QueueSize(&pQueue);//元素个数
	printf("%d ", b);
}

int main()
{
	DuiLie();
	system("pause");
	return 0;
}
0

评论区