4 篇文章 0 订阅
4 篇文章 0 订阅

# 一、定义链式队列

typedef struct QueneNode
{
int data;
struct QueneNode* next;
}Node;
{
Node* front;
Node* rear;


# 二、链式队列的基本操作

## 1.初始化队列

//初始化队列
{
Node *p;
p = new Node;
if (!p)
{
cout << "分配内存失败" << endl;
return;
}
p->next = NULL;
q.front = q.rear = p;
}


## 2.判断队列是否为空

//判断队列是否为空
{
if (q.front == q.rear)
{
return 1;
}
return 0;
}


## 3.入队操作

//入队操作
{
Node* p;
p = new Node;
if (!p)
{
cout << "分配内存失败" << endl;
return;
}
p->data = e;
p->next = NULL;
q.rear->next = p;
q.rear = p;
}


## 4.出队操作

//出队操作
{
if (is_Empty_Quene(q))
{
return;
}
Node* p;
p = q.front->next;
if (q.front->next==q.rear)
{
q.rear = q.front;
}
e = p->data;
q.front->next = p->next;
delete p;
}


## 5.访问队列的队首元素

//访问队列中的队首元素
{
if (is_Empty_Quene(q))
return;
a = q.front->next->data;
}


## 6.计算队列的长度

//求队列长度
{
int length = 0;
Node* p = q.front->next;
while(p != NULL)
{
length++;
p = p->next;
}
return length;
}


# 所有源代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
typedef struct QueneNode
{
int data;
struct QueneNode* next;
}Node;
{
Node* front;
Node* rear;
//初始化队列
{
Node *p;
p = new Node;
if (!p)
{
cout << "分配内存失败" << endl;
return;
}
p->next = NULL;
q.front = q.rear = p;
}
//判断队列是否为空
{
if (q.front == q.rear)
{
return 1;
}
return 0;
}
//入队操作
{
Node* p;
p = new Node;
if (!p)
{
cout << "分配内存失败" << endl;
return;
}
p->data = e;
p->next = NULL;
q.rear->next = p;
q.rear = p;
}
//出队操作
{
if (is_Empty_Quene(q))
{
return;
}
Node* p;
p = q.front->next;
if (q.front->next==q.rear)
{
q.rear = q.front;
}
e = p->data;
q.front->next = p->next;
delete p;
}
//访问队列中的队首元素
{
if (is_Empty_Quene(q))
return;
a = q.front->next->data;
}
//求队列长度
{
int length = 0;
Node* p = q.front->next;
while(p != NULL)
{
length++;
p = p->next;
}
return length;
}

int main()
{
Init_Quene(q);
if (is_Empty_Quene(q))
{
cout << "该队列为空" << endl;
}
cout << "该队列的长度为:" << Length_Quene(q) << endl;

Push_Quene(q, 1);
Push_Quene(q, 2);
Push_Quene(q, 3);
int a = 0;
Get_Top(q, a);
cout << "队首元素为：" << a << endl;
cout << "该队列的长度为:" << Length_Quene(q) << endl;
int e = 0;
Pop_Quene(q, e);
Get_Top(q, a);
cout << "队首元素为：" << a << endl;
Pop_Quene(q, e);
Get_Top(q, a);
cout << "队首元素为：" << a << endl;

Pop_Quene(q, e);

cout << "该队列的长度为:" << Length_Quene(q) << endl;

return 0;
}

• 3
点赞
• 1
收藏 更改收藏夹
• 打赏
• 1
评论
01-08 7360
02-22 1067
04-07 250
04-19 486
11-13 70
10-01 1247
02-05 732
03-23 317
10-26 754
07-18 5633
03-24 296
07-20 178

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

¥2 ¥4 ¥6 ¥10 ¥20

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