链队列的实现 C语言
/*
链队列的实现以及相关操作
作者:S_hmily
日期:2011年9月1日
编译环境:VC++6.0
*/
/***************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/***************************************************/
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int ElemType;
typedef int Status;
typedef struct node{
ElemType data;
struct node *next;
}Qnode, *pQnode;
typedef struct {
pQnode frond;
pQnode rear;
}LinkQueue;
/***************************************************/
//初始化
Status InitLinkQueue(LinkQueue *Q)
{
//头结点
pQnode head = (pQnode)malloc(sizeof(Qnode));
if (!head)
exit(-1);
head->next = NULL;
Q->frond = Q->rear = head;
return OK;
}
/***************************************************/
//入队
Status EnQueue(LinkQueue *Q, ElemType e)
{
pQnode pNew = (pQnode)malloc(sizeof(Qnode));
if (!pNew)
exit(-1);
pNew->data = e;
pNew->next = Q->rear->next;
Q->rear->next = pNew;
Q->rear = pNew;
return OK;
}
/***************************************************/
//出队
Status DeQueue(LinkQueue *Q, ElemType *e)
{
pQnode p = Q->frond->next;
//对空
if (Q->frond == Q->rear)
return ERROR;
*e = p->data;
Q->frond->next = p->next;
if (Q->rear == p)
Q->rear = Q->frond;
free(p);
return OK;
}
/***************************************************/
int main(void)
{
LinkQueue Q;
InitLinkQueue(&Q);
return 0;
}
链队列的实现 C语言相关推荐
- 队列的基本操作c语言代码大全,数据结构――队列(循环队列)的基本操作(实现链队列逐一取出c语言代码)...
队列 队列是一种重要的线性结构,与栈相同也需要顺序表或者链表作为基础.队列是先进先出(first in first out)FIFO的线性表. 所有数据从队列的一端进入,从另一端离开. 队列中允许插入 ...
- 链队列出入队列c语言程序,链队列简单操作(c语言)
#include #define ERROR 0 struct Node{ int Data; struct Node *Next; }; struct QNode{ struct Node *rea ...
- 数据结构——链式队列解析(C语言版)
摘自:数据结构学习--链式队列解析(C语言版) 作者:正弦定理 发布时间:2020-11-26 21:07:08 网址:https://blog.csdn.net/chinesekobe/articl ...
- 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)
目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...
- 停车场管理系统(C语言顺序栈+链栈+链队列)
一.实验目的 1.根据停车场管理系统的要求,利用结构化程序设计方法以及C的编程思想来完成系统的设计,使用数据结构中的栈.队列进行分析: 2.按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用 ...
- c语言循环队列入列算法,C语言——循环队列和链队列的基本运算
// 循环队列 #include #include "SeqQue.h" // 循环队列的基本运算 /* const int maxsize = 20; typedef struc ...
- C语言实现链队列并测试
采用链式存储法编程实现元素入队.出队以及将队列中的元素显示出来,要求整个过程以菜单选择的形式出现.队列的链式存储结构是通过节点构成的单链表实现的,此时只允许在单链表的表首进行删除,在表尾进行插入,以实 ...
- C语言实现数据结构——链队列
定义 前面学习了栈这种数据结构,我们知道他的特点是数据先进后出.与栈相反,队列的特点时数据先进先出.即first in firsr out,简称FIFO. 队列只允许在表的一端进行数据的插入,在另一端 ...
- 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...
还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...
最新文章
- service 与chkconfig
- 实时音视频互动系列(上):又拍云UTUN网络详解
- python输出乘法口诀-【每日一练】python输出 9*9 乘法口诀表
- 数据中心真能促进乡村经济吗?
- Ubuntu复制相同的目录结构(不复制文件)
- 【无套路送书】架构师是怎样炼成的?
- mysql lepus_MySQL 监控软件lepus天兔
- redis中hash类型介绍
- 华兴源创成科创板第一股 6月21日起初步询价
- 转载:百集3D动画片《精灵世纪》制作揭密
- 几个开源项目实体层实现方式比较
- 数据集加载--load_digits
- 华为m6平板电脑Linux,华为平板M6 10.8英寸版使用体验及全面评测
- 不用登陆QQ也能使用QQ截图工具
- 如何快速把kux格式转换成mp4
- 腾讯笔试题——逆序对
- VS的Qt界面预览和QtCreator的界面预览快捷键
- Linux操作命令分类详解 - 目录文件(二)
- InnoDB引擎--事务持久性
- 揭秘:游戏开发的薪资情况和发展前景!
热门文章
- linux下测试网速
- android视频快速压缩视频教程,Android上的快速视频压缩
- Qt工程中c++实现wrl到pcd格式转换
- 另一半人马座,孟庭苇
- mac上最好用的在线视频播放器:IINA+ for Mac
- 数据库从入门到删库跑路(二) - - PL/SQL
- GB1774-2015的Endnote “样式文件”下载及制作
- 机器学习笔记 - 同步定位与地图构建 (SLAM)
- ACPI on ARMv8 Servers
- 学习WEB前端开发是选择自学还是去培训机构?