数据结构队列的代码实现
队列是先入先出的,即先入队的数据先出队
下面程序是队列的链式存储结构的实现,具有入队,出队,销毁队列的的功能
- 程序开头部分
#include <stdio.h>
#include <stdlib.h>#define Ok 1
#define ERROR 0typedef int QElemType;
typedef int Status;typedef struct QNode {QElemType data;struct QNode *next;
} QNode, *QueuePtr;typedef struct {QueuePtr front;QueuePtr rear;
} LinkQueue;
- 程序的主题部分
// 初始化队列
Status InitQueue(LinkQueue *s) {s->front = s->rear = (QueuePtr) malloc(sizeof(QNode));if (!s->front) {printf("初始化队列错误");exit(-1);}s->front->next = NULL;return Ok;
}// 插入到队列
Status InsertQueue(LinkQueue *s, QElemType e) {QueuePtr p;p = (QueuePtr) malloc(sizeof(QNode));if (!p) {printf("插入队列失败");exit(-1);}p->data = e;p->next = NULL;s->rear->next = p;s->rear = p;return Ok;
}// 元素出队列
Status DeQueue(LinkQueue *s, int *e) {QueuePtr p;if (s->front == s->rear) {return ERROR;}p = s->front->next;*e = p->data;s->front->next = p->next;if (s->rear == p) {s->rear = s->front;}free(p);return Ok;
}// 销毁队列
Status DestoryQueue(LinkQueue *s) {while (s->front) {s->rear = s->front->next;free(s->front);s->front = s->rear;}return Ok;
}int main() {int n, tmp, num;QueuePtr s;InitQueue(s);printf("请输入要入队列元素的个数:");scanf("%d", &n);for (int i = 0; i < n; i++) {printf("请输入第 %d 个值:", i + 1);scanf("%d", &tmp);InsertQueue(s, tmp);}for (int j = 0; j < n; j++) {DeQueue(s, &num);printf("%d\t", num);}DestoryQueue(s);return 0;
}
程序运行结果:
输入要入队列元素的个数为6,依次输入4,5,6,7,2,3,结果输出为4 5 6 7 2 3
数据结构队列的代码实现相关推荐
- 数据结构队列代码_代码简介:队列数据结构如何工作
数据结构队列代码 Here are three stories we published this week that are worth your time: 这是我们本周发布的三个值得您关注的故事 ...
- 数据结构——队列的C语言代码实现
系列文章目录 数据结构--顺序表的C语言代码实现 数据结构--八种链表的C语言代码实现 数据结构--栈的C语言代码实现 数据结构--队列的C语言代码实现 数据结构--堆的C语言代码实现 文章目录 系列 ...
- 《数据结构》之循环队列及代码
一.引入 队列的顺序实现指内存中分配一片连续的存储单元用来存放数据,再设两个指针:队头指针front指向队头元素,队尾指针rear指向队尾元素或者队尾元素的下一个位置此处采用指向队尾元素下一个位置为例 ...
- java数据结构 队列_Java数据结构与算法[原创]——队列
声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文介绍数据结构中的队列(queue)的概念.存储结构.队列的特点,文末给出ja ...
- java 数据结构_Java版-数据结构-队列(数组队列)
前言 看过笔者前两篇介绍的 Java版数据结构 数组和 栈的盆友,都给予了笔者一致的好评,在这里笔者感谢大家的认可!!! 由于本章介绍的数据结构是 队列,在队列的实现上会基于前面写的 动态数组来实现, ...
- java 数据队列_Java 数据结构 - 队列
Java 数据结构 - 队列 我们今天要讲的数据结构是队列,比如 Java 线程池任务就是队列实现的. 1. 什么是队列 和栈一样,队列也是一种操作受限的线性结构.使用队列时,在一端插入元素,而在另一 ...
- 队列的基本操作_算法设计:数据结构-队列
一.队列 1.队列的概念 队列是一种"先进先出(first in first out)"的数据结构,它是一种有序线性表的抽象数据类型.队列在计算机 领域的应用也相当的广泛,例如计算 ...
- java循环队列_Java版-数据结构-队列(循环队列)
前情回顾 在上一篇,笔者给大家介绍了数组队列,并且在文末提出了数组队列实现上的劣势,以及带来的性能问题(因为数组队列,在出队的时候,我们往往要将数组中的元素往前挪动一个位置,这个动作的时间复杂度O(n ...
- 第七周--数据结构--队列数组
/* *第七周--数据结构--队列数组 *Copyright (c) 2015 烟台大学计算机与控制工程学院 *All right reserved. *文件名称:li ...
- 考研数据结构与算法代码实现目录
文章目录 线性表与链表 栈和队列 三.树与二叉树 四.图 五.查找 六.排序 8.2 插入排序 8.3 交换排序 8.4 选择排序 8.5 归并排序 一定要从本质上彻底搞懂数据结构,在代码层面上理解. ...
最新文章
- IIS 7.5 + FastCGI + PHP + Drupal 7 + Oracle
- API 大赛决赛名单出炉,速来围观!
- 关于 Workbench中 pk,nn,uq,bin,un,zf,ai 的解释
- tomcat虚拟目录和虚拟主机等相关配置
- 东北大学计算机 大一物理考试题,东北大学大学物理期末考题及答案Word版
- javascript模块_JavaScript中的模块
- OpenShift 4 - 用 Operator 创建 Jenkins 环境
- OpenCV读取视频并获得相关属性信息
- java ee是编程语言_什么是Java编程语言?
- Hexo-Next主题配置
- bootbox.js文档中文版
- GOP和帧率、码率的关系
- Linux程序设计(Linux shell编程五)
- LaneATT代码复现环境配置
- 人口收入普查数据探索
- 软件测试面试中的一些奇葩问题
- c++ 旅行家的预算
- Angularjs (二)
- 加州旅馆 Hotel California (The Eagles)
- 如何从关键词库中选出核心关键词的小技巧
热门文章
- 计算机无法关机 总是自动启动,告诉你win10电脑关机后自动开机怎么解决
- 计算机的字体要怎么删除,win7字体删不掉怎么办?教你删除win7多余字体方法
- mac触控板 鼠标中键_如何使用触控板,鼠标或键盘在任何Mac上单击鼠标右键
- python金额数字转大写完整代码
- 360p2刷无线打印服务器,360P2路由器怎么修改无线信道?-360安全路由P2的WiFi信道修改教程?...
- 稳压二极管的原理,它有什么作用?
- 美团热修复 Robust 方案接入(一)
- JAVA 面试 知识点整理
- caption重要性 image_Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型...
- 冰点还原8.53破解版