链队列的初始化、入队、出队等操作实现

本文详细介绍了链队列的基本概念,包括初始化、入队和出队等核心操作的具体实现代码。通过C语言示例展示了如何创建一个空的链队列、如何向链队列中添加元素以及如何移除队列头部的元素。


链队列的初始化、入队、出队等基本操作实现代码如下:

#include<iostream>

using namespace std;

#define  TRUE 1

#define  FALSE 0


//链队列定义

typedef struct Node

{

int data;//数据域

struct Node *next;//指针域

}LinkQueueNode;


typedef struct 

{

LinkQueueNode *front;//队头指针front

LinkQueueNode *rear;//队头指针rear

}LinkQueue;


//将Q初始化为一个空的链队列

int InitQueue(LinkQueue *Q)

{

Q->front = (LinkQueueNode *)malloc(sizeof(LinkQueueNode));

if (Q->front != NULL)

{

Q->rear = Q->front;

Q->front->next = NULL;

return TRUE;

}

else

{

return FALSE;//溢出

}

}


//将数据元素x插入到队列Q中

int EnterQueue(LinkQueue *Q,int x)

{

LinkQueueNode *NewNode;

NewNode = (LinkQueueNode *)malloc(sizeof(LinkQueueNode));

if (NewNode != NULL)

{

NewNode->data=x;

NewNode->next = NULL;

Q->rear->next = NewNode;

Q->rear = NewNode;

return TRUE;

}

else

{

return FALSE;//溢出

}

}


//将队列Q的队头元素出队,并存放到x所指的存储空间中

int DeleteQueue(LinkQueue *Q, int *x)

{

LinkQueueNode *p;

if (Q->front == Q->rear)

{

return FALSE;

}

p = Q->front->next;

Q->front->next = p->next;//队头元素p出队

if (Q->rear==p)//如果队中只有一个元素p,则p出队后成为空队

{

Q->rear= Q->front;

}

*x = p->data;

free(p);//释放存储空间

return TRUE;

}


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1771880

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值