#include<iostream>
using namespace std;
typedef struct node
{
int data;
struct node *next;
}QNode,*PQNode;
typedef struct
{
PQNode front,rear;
}LinkQueue,*PLinkQueue;
//初始化队列
PLinkQueue Init_LinkQueue(void)
{
PLinkQueue Q;
Q=(PLinkQueue)malloc(sizeof(LinkQueue));
if(Q)
{
Q->front=NULL;
Q->rear=NULL;
}
return Q;
}
//判断队空(是否有元素)
int Empty_LinkQueue(PLinkQueue Q)
{
if(Q&&Q->front==NULL&&Q->rear==NULL)
return 1;
else
return 0;
}
//入队
int In_LinkQueue(PLinkQueue Q,int x)
{
PQNode p;
p=(PQNode)malloc(sizeof(QNode));
if(!p)
{
cout<<"内存溢出";
return 0;
}
p->data=x;
p->next=NULL;
if(Empty_LinkQueue(Q))
{
Q->front=Q->rear=p;
}
else
{
Q->rear->next=p;
Q->rear=p;
}
return 1;
}
//出队
int Out_LinkQueue(PLinkQueue Q,int *x)
{
PQNode p;
if(Empty_LinkQueue(Q))
{
cout<<"队空";
return 0;
}
*x=Q->front->data;
p=Q->front;
Q->front=Q->front->next;
free(p);
if(!Q->front)
{
Q->rear=NULL;
}
return 1;
}
//读队头元素
int GetTop_LinkQueue(PLinkQueue Q,int *x)
{
if(Empty_LinkQueue(Q))
{
cout<<"队空";
return 0;
}
*x=Q->front->data;
return 1;
}
//销毁队列
void Destroy_LinkQueue(PLinkQueue *Q)
{
PQNode p,s;
if(*Q)
{
s=(*Q)->front;
while(s)
{
p=s;
s=s->next;
free(p);
}
/*while((*Q)->front)
{
p=(*Q)->front;
(*Q)->front=(*Q)->front->next;
free(p);
}*/
free(*Q);
}
*Q=NULL;
return ;
}
int main()
{
PLinkQueue Q;
Q=Init_LinkQueue();
Destroy_LinkQueue(&Q);
return 0;
}3.2链式队列
最新推荐文章于 2025-10-18 22:06:02 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言
737

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



