链队列的初始化、入队、出队等操作实现
来源:互联网 发布:国际贸易统计数据库 编辑:程序博客网 时间:2024/04/27 10:48
链队列的初始化、入队、出队等基本操作实现代码如下:
#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
- 链队列的初始化、入队、出队等操作实现
- 循环队列的初始化、入队、出队等基本操作
- C语言实现顺序队列的初始化、入队、出队等操作(三)
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- 队列的入队、出队操作实现
- 链式队列操作,初始化,入队,出队
- 采用链式存储实现队列的初始化、入队、出队操作。
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现
- 链队列、循环队列的实现(初始化、出队、入队、取队头元素、判空)
- 循环队列的定义、入队、出队等操作 C++代码实现
- [转载] 循环队列的定义、入队、出队等操作 C++代码实现
- 链队列的初始化、入队、出队及打印(数据结构)
- 编程实现队列入队出队操作
- 编程实现队列的入队/出队操作
- 编程实现队列的入队/出队操作
- 顺序队列基本操作的实现----入队、出队、打印
- 链队列的简单操作(入队,出队,输出队元素等)
- 单链表的头插、尾插、删除、合并等操作
- 斐波拉契数列的递归、非递归、公式法多种方法实现
- win10系统桌面图标变为白色方框和去除桌面图标快捷方式小箭头的方法
- 顺序栈的基本操作:初始化、进栈、出栈、读栈顶元素
- 多栈共享技术,双端栈的初始化、进栈、出栈操作
- 链队列的初始化、入队、出队等操作实现
- 循环队列的初始化、入队、出队等基本操作
- 链栈的基本操作
- 多栈运算
- Flash的按钮链接在网页的中的使用
- 汉诺塔问题的递归解法
- 求f(k)=k^k(k=1...n)的前n项和
- 二分查找算法的递归、循环实现及其缺陷
- 稀疏矩阵的列序递增法和一次定位快速转置法