队列测试代码笔记如下:

 #include<stdio.h>
#define SIZE 10
typedef struct Queue
{
int data[SIZE]; //队列的容量
int front; //头部标志
int tail; //尾部标志
}QUEUE,*PQUEUE; //1.初始化队列
void Init_Queue(PQUEUE Q)
{
Q->front = ;
Q->tail = ;
for (int i = ; i < SIZE; i++)
{
Q->data[i] = ;
} } //2. 入队
void Queue_Push(PQUEUE Q, int data)//参数1:指明要入的队列是哪一个 参数2:要入队的值
{
// 2.1 判断是不是满的
if (((Q->tail+)%SIZE) == Q->front)
{
printf("队列满了!无法入队!\n");
return; //满了直接退出!
}
Q->data[Q->tail] = data;
Q->tail++;
if (Q->tail == SIZE) //如果到最后一个+1之后等于第一元素
{
Q->tail %= SIZE;
}
} //3. 获取队头的元素
int GetQueue(PQUEUE Q)
{
return Q->data[Q->front]; //返回头部元素
} //4. 出队
void Pop_Queue(PQUEUE Q)
{
Q->front++;
if (Q->front == SIZE) //如果到最后一个+1之后等于第一元素
{
Q->front %= SIZE;
}
} //5. 判断队列是不是空的
int isEmpty(PQUEUE Q)
{
return Q->front == Q->tail; //头尾相同说明是空的
} int main()
{
QUEUE MyQueue;
Init_Queue(&MyQueue);
for (int i = ; i < ; i++)
{
Queue_Push(&MyQueue, i + );
}
//出队
while (!isEmpty(&MyQueue))
{
printf("%d -> ", GetQueue(&MyQueue)); Pop_Queue(&MyQueue); }
return ;
}

2019-03-31  21:07:51

C++学习(三十三)(C语言部分)之 队列的更多相关文章

  1. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  2. 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询

    目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...

  3. python学习 (三十三) Modules

    1: 方法一: 导入整个模块 import math class ModulesDemo(): def builtin_modules(self): print(math.sqrt()) m = Mo ...

  4. Java开发学习(三十三)----Maven私服(一)私服简介安装与私服分类

    一.私服简介 团队开发现状分析 (1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可 (2)李四负责ssm_order的开发,需要用到 ...

  5. python学习三十三天函数匿名函数lambda用法

    python函数匿名函数lambda用法,是在多行语句转换一行语句,有点像三元运算符,只可以表示一些简单运算的,lambda做一些复杂的运算不太可能.分别对比普通函数和匿名函数的区别 1,普通的函数用 ...

  6. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  7. 20165305 学习基础和C语言基础调查

    学习基础和C语言基础调查 <优秀的教学方法---做教练与做中学>心得 在<优秀的教学方法---做教练与做中学>文章中又一次提到了"做教练"这一学习方法,因为 ...

  8. 20165306学习基础和C语言基础调查

    20165306学习基础和C语言基础调查 技能学习心得 我认为兴趣.责任感.毅力对技能的获得非常重要. 因为我从小五音不全.肢体不协调,所以看春晚等节目的时候会把更多的关注点放在主持人身上.小时候觉得 ...

  9. 20165308 学习基础和C语言基础调查

    学习基础和C语言基础调查 技能学习 我认为给学生具体的, 能实践的, 能马上看到因果关系的教材和练习, 是激发学生兴趣, 好奇心, 求知欲的好方法. -- 引用自<做中学> 老师博客中注重 ...

  10. “全栈2019”Java多线程第三十三章:await与signal/signalAll

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. vs2017 Mariadb/mysql之旅

    记录vs2017使用 ef6+mysql的开发 填坑之旅.我的环境 vm+centos7+ docker-ce+mariadb+vs2017 总的原则是MySql.Data.Entity 要和 mys ...

  2. java倒计时使用ScheduledExecutor实现,使用两个线程,以秒为单位

    public class Countdown2 { private volatile int lin; private int curSec; public Countdown2(int lin) t ...

  3. information_schema

    views 视图表,查看当前数据库有哪些视图 select table_catalog,table_schema,table_name,is_updatable,definer,security_ty ...

  4. 读书笔记 C# 接口之浅析

    一.接口可以包含 属性.方法.事件和索引器: 二.接口不能被实例化: 三.一个类可以继承多个接口: 四.接口不能包含方法的实现: 五.继承接口的类必须实现接口中所有成员: 六.显式实现接口的成员,不能 ...

  5. node(2) EventEmitter类 事件队列 事件和error事件方法

    事件队列的核心:事件触发与事件监听器功能的封装. // 引入 events 模块 var events = require('events'); // 创建 eventEmitter 对象 var e ...

  6. ssh免密登陆

    1:建立新用户hadoop 2:进入/home/hadoop/.ssh/目录 3:所有要免密连接的终端运行: ssh-keygen -t rsa 三次回车后会产生:id_rsa,id_rsa.pub两 ...

  7. TortoiseGit 的下载与安装

    一.下载 访问https://tortoisegit.org/ 二.安装 然后就next,install 配置参考:2. TortoiseGit安装与配置

  8. OpenStack平台虚拟机实例在线迁移失败问题

    一.在线迁移时提示如下的报错 二.原因分析 通过kolla-ansible部署queens版本时,因为OEM的机器设备的UUID记录的一致,导致迁移时识别的是自身机器的UUID,导致迁移失败 三.问题 ...

  9. SharePoint Framework 企业向导(十)

    博客地址:http://blog.csdn.net/FoxDave 接上一讲 SharePoint Framework部署范围 对于SharePoint Framework解决方案,只有一个部署范围: ...

  10. <Spark><Introduction to Spark>

    What Is Apache Spark? 速度方面:Spark扩展了MapReduce模型,可以更高效地提供多种类型的计算,包括交互式查询和流处理.Spark为speed所提供的最大能力就是内存计算 ...