#include <iostream>
#include <stdlib.h>
/*** 链式存储实现队列 ***/
//定义一个头结点(含有next指针和数据元素)
typedef struct LinkNode{
int data;
struct LinkNode *next;
}LinkNode;
//定义一个队列(含有前后指针)
typedef struct{
LinkNode *front,*rear;
}LinkQueue;
//初始化(有头结点)
void InitQueue(LinkQueue &Q){
Q.front=Q.rear= (LinkNode*)malloc(sizeof(LinkNode)); //申请一个头结点,并让front和rear同时指向头结点
Q.front->next=NULL;
}
//初始化(无头结点)
void InitQueue2(LinkQueue &Q){
Q.front=NULL;
Q.rear=NULL;
}
//判空(有头结点)
bool IsEmpty(LinkQueue Q){
if(Q.front==Q.rear)
return true;
else
return false;
}
//判空(无头结点)
bool IsEmpty2(LinkQueue Q){
if(Q.front==NULL)
return true;
else
return false;
}
//新元素入队(只在表尾,有头结点),入队是无论如何都能入队的,所以不需要用bool函数
void EnQueue(LinkQueue &Q,int x){
LinkNode *s=(LinkNode*)malloc(sizeof(LinkNode)); //定义一个新的结点(包含新的数据元素和指向下一个结点的指针)
s->data=x;
s->next=NULL;
Q.rear->next=s;
Q.rear=s; //表尾指针指向新的表尾结点
}
//新元素入队(无头结点)
void E
【数据结构笔记】线性表-队列(链式存储)
最新推荐文章于 2024-06-21 19:54:35 发布
本文详细探讨了数据结构中的线性表——队列,重点介绍了使用链式存储实现队列的方法,涵盖了队列的基本概念、操作(入队、出队)、链式存储结构的特性及其在C++中的实现细节。

最低0.47元/天 解锁文章
2750

被折叠的 条评论
为什么被折叠?



