#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define TURE 1
#define FALSE 0
#define MACSIZE 20
typedef int Status;
typedef int ElemType;
//结点的结构
typedef struct QNode
{
ElemType data;
struct QNode* next;
}QNode, * QueuePtr;
//队列的链式存储
typedef struct
{
QueuePtr front;//队头
QueuePtr rear;//队尾
}LinkQueue;
//初始化
Status InitQueue(LinkQueue* Q)
{
Q->front = Q->rear = (QueuePtr)malloc(sizeof(QNode));
if (!Q->front)
return ERROR;
Q->front->next = NULL;
return OK;
}
//销毁
Status DesQueue(LinkQueue* Q)
{
while (Q->front)//从队头开始销毁
{
Q->rear = Q->front->next;
free(Q->front);
Q->front = Q->rear;
}
return OK;
}
//判断队列是否为空,就是看Q.front是否等于Q.rear
Status EmptyQueue(LinkQueue Q)
{
if (Q.front == Q.rear)
return TURE;
else
return FALSE;
}
//取队列长度
int LengthQueue(LinkQueue Q)
{
int i = 0;
QueuePtr p = Q.front;
while (p != Q.rear)
{
i++;
p = p
数据结构-队列的基本操作(初始化,销毁,判空,长度,取队头,队尾插入,队头删除,遍历)
于 2022-11-23 15:27:07 首次发布