数据结构——顺序队列(sequence queue)
/* sequenceQueue.c */
/* 顺序队列 */ #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h> #define MAXSIZE 100 /* 顺序循环队列数据结构 */
/* 一个圆圈,front指向队列头,rear指向队列尾 */
/*
front -> ... -> rear
data[0] -> data[...] -> data[n]
*/
typedef struct {
int data[MAXSIZE];
int rear, front;
int num; /* 队列元素的个数 */
} SeqQueue; void interface(void);
/* 顺序列表函数声明 */
SeqQueue *initializeSeqQueue();
bool isFullSeqQueue(SeqQueue*);
bool isEmptySeqQueue(SeqQueue*);
void inSeqQueue(SeqQueue*, int);
int outSeqQueue(SeqQueue*); int main(){
SeqQueue *sq = initializeSeqQueue();
int flag, number; interface();
for(;;){
printf("Command: ");
scanf("%d", &flag);
switch(flag){
case : printf("Bye!\n"); return ; break;
case :
if(isFullSeqQueue(sq))
printf("Queue is full!\n");
else{
printf("Enter number: ");
scanf("%d", &number);
inSeqQueue(sq, number);
}
break;
case :
if(isEmptySeqQueue(sq))
printf("Queue is empty!\n");
else{
printf("value: %d\n", outSeqQueue(sq));
}
break;
}
} return ;
} void interface(void){
puts("+********************+");
puts("+ 0, quit 退出 +");
puts("+ 1, in 入队 +");
puts("+ 2, out 出队 +");
puts("+********************+");
}
/* 顺序列表函数实现 */
/* 初始化顺序列表,列表为空,front和read都为-1,num为0 */
SeqQueue *initializeSeqQueue(){
SeqQueue *sq = (SeqQueue*)malloc(sizeof(SeqQueue));
sq->front = sq->rear = -;
sq->num = ;
return sq;
}
/* 判断队列是否为空 */
bool isEmptySeqQueue(SeqQueue *sq){
if(sq->num==)
return true;
return false;
}
/* 判断队列是否已满 */
bool isFullSeqQueue(SeqQueue *sq){
if(sq->num==MAXSIZE)
return true;
return false;
}
/* 入队 */
void inSeqQueue(SeqQueue *sq, int number){
/* 循环队列,取余MAXSIZE */
sq->rear = sq->rear+ % MAXSIZE;
sq->data[sq->rear] = number;
sq->num++;
}
/* 出队 */
int outSeqQueue(SeqQueue *sq){
sq->front = sq->front+ % MAXSIZE;
sq->num--;
return sq->data[sq->front];
}
数据结构——顺序队列(sequence queue)的更多相关文章
- 数据结构 - 顺序队列的实行(C语言)
数据结构-顺序队列的实现 1 顺序队列的定义 线性表有顺序存储和链式存储,队列作为一种特殊的线性表,也同样存在这两种存储方式.我们先来看队列的顺序存储结构. 队列的顺序储存结构:用数组存储队列,为了避 ...
- 数据结构之队列(Queue)
1,队列的定义 队列:是一种先进先出的数据结构,如下图所示,现进去的数据在队列前面(front),先出队列,后进入队列的数据在后面(rear),后出队列. 队列常用操作: q=Queue() #创建队 ...
- Java数据结构之队列(Queue)
1.使用场景 银行排队的案例: 2.队列介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则: 先存入队列的数据,要先取出. 后存入的要后取出 示意图:(使用数组模拟队列示意图) ...
- javascript数据结构之队列
首先什么是队列? 排队买东西就是生活中队列的实际例子,在队伍中大家必须按照顺序来,不能插队,新来的人只能排在队伍的最后面.新加入的人相当于队列的后端加入的元素,队伍最前面买完东西的人离开队伍相当于是队 ...
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
一.队列的概念: 队列(简称作队,Queue)也是一种特殊的线性表,队列的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置插入和删除,而队列只允许在其一端进行插入操作在其 ...
- PHP实现队列(Queue)数据结构
队列(Queue),是一种特殊的先进先出线性表,其只能在前端进行删除操作(一般称为出队),在后端进行插入操作(一般称为入队).进行删除操作的端称为队头,进行插入操作的端称为队尾.队列,是按照先进先出或 ...
- Javascript数据结构与算法--队列(顺序队列、优先队列、循环队列)的实现与用法
前言 队列和栈非常类似,前面已经讲过了栈的实现与用法,现在我们来说说队列. 队列介绍 队列遵循FIFO(First In First Out,先进先出)原则的一组有序的项. 队列是一种特殊的线性表,特 ...
- python 数据结构 队列(queue)
如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10293817.html 欢迎关注小婷儿的博客: 有问题请在博客下留言或加作者微信:t ...
- 数据结构之顺序队列(C实现)
一.队列是什么 队列是一种可以实现“先进先出”的存储结构. 队列通常可以分为两种类型: 一.顺序队列,采用顺序存储,当长度确定时使用. 顺序队列又有两种情况: ①使用数组存储队列的称为静态顺序队列. ...
随机推荐
- [转]numpy的getA()/getA1()/getH()/getI()函数
转自https://blog.csdn.net/weixin_42906066/article/details/82625779 1.mat.getA() 将自身矩阵变量转化为ndarray类型的变量 ...
- thinkPHP5 添加新模块
1. 修改build.php文件 , 添加新模块 2. cmd 运行命令 php think build --config build.php
- LeetCode 21:合并两个有序链表 Merge Two Sorted Lists
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. Merge two sorted linked lists and return it as a new ...
- POJ 1094 (传递闭包 + 拓扑排序)
题目链接: POJ 1094 题目大意:有 1 ~ N 个大写字母,且从 A 开始依次 N 个.再给你 M 个小于的关系,比如 A < B ,让你判断三种可能: 1.在第 i 个关系罗列之后,是 ...
- Vue.js 源码分析(三) 基础篇 模板渲染 el、emplate、render属性详解
Vue有三个属性和模板有关,官网上是这样解释的: el ;提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标 template ;一个字符串模板作为 Vue 实例的标识使用.模板将会 ...
- Elastic Stack核心产品介绍-Elasticsearch、Logstash和Kibana
Elastic Stack 是一系列开源产品的合集,包括 Elasticsearch.Kibana.Logstash 以及 Beats 等等,能够安全可靠地获取任何来源.任何格式的数据,并且能够实时地 ...
- 在Linux系统中运行并简单的测试RabbitMq容器
以前使用的是Windows下面的RabbitMq,需要先安装 Erlang的语言环境等,这次直接在Linux中的Docker容器来测试一下 1:docker配置RabbitMq的指令 docker r ...
- Vs2017发布可在线更新的Winform程序
如题,此处引用“南秦岭”的博文<使用ClickOnce发布Windows应用程序>,对作者表示感谢! 补充说明: “发布文件夹”是指你电脑上的本地文件夹:“安装文件夹”是指你提供给用户的u ...
- python接口上传图片和文件的方法
import requests def sendImg(img_path, img_name, img_type='image/jpeg'): """ :param im ...
- python数据分析&挖掘,机器学习环境配置
目录 一.什么是数据分析 1.这里引用网上的定义: 2.数据分析发展与组成 3.特点 二.python数据分析环境及各类常用分析包配置 1.处理的数据类型 2.为什么选择python 三.python ...