//简单的队列

#include<stdio.h>
#include<stdlib.h> #define datatype int
#define N 10 //定义队列结构体
struct queue{
int front;//队头
int endline;//队尾
datatype data[N];//数据
}; typedef struct queue Queue; Queue myQueue = { , , { } }; //初始化队列
void initQueue(Queue * p);
//入队
void enQueue(Queue *pque, datatype data);
//出队
void deQueue(Queue *pque);
//遍历队列
void printfQueue(Queue *pque); //数组队列只能使用一次,使用之后必须初始化后才可以继续使用 void main(){
Queue *pque = (Queue *)malloc(sizeof(Queue));
initQueue(pque);
//插入队列
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
enQueue(pque,);
//打印队列
printfQueue(pque);
//出队
deQueue(pque);
//打印队列
printfQueue(pque);
deQueue(pque);
//打印队列
printfQueue(pque);
system("pause");
} //初始化队列
void initQueue(Queue *pque){
pque->front = pque->endline = ;//清空队列
} //入队
void enQueue(Queue *pque,datatype data){
//判断队列是否溢出
if (pque->endline<N)
{
//判断队列是否为空
if (pque->front == pque->endline)//队头和队尾重合表明没有元素
{
//初始化队列
initQueue(pque);
}
pque->data[pque->endline] = data;
pque->endline += ; }
else{
return;
} } //出队
void deQueue(Queue *pque){
//判断队列是否为空
if (pque->front == pque->endline)
{
//队列为空
return;
}
else{
//直接弹出最后一个
printf("弹出的元素是%d\n", pque->data[pque->front]);
pque->front+= ;
}
} //遍历队列
void printfQueue(Queue *pque){
for (int i = pque->front; i < pque->endline; i++)
{
printf("%d\n", pque->data[i]);
}
}

C语言 简单的队列(数组队列)的更多相关文章

  1. Python与数据结构[2] -> 队列/Queue[0] -> 数组队列的 Python 实现

    队列 / Queue 数组队列 数组队列是队列基于数组的一种实现,其实现类似于数组栈,是一种FIFO的线性数据结构. Queue: <--| 1 | 2 | 3 | 4 | 5 |<-- ...

  2. C语言实现使用动态数组实现循环队列

    我在上一篇博客<C语言实现使用静态数组实现循环队列>中实现了使用静态数组来模拟队列的操作. 因为数组的大小已经被指定.无法动态的扩展. 所以在这篇博客中,我换成动态数组来实现. 动态数组能 ...

  3. Java中的自定义数组队列

    在Java中,作为所有数据结构中存储和获取速度最快的一种,数组凭借其这种简单易用的优势在各个方面都能大显神威.但是数组也有自身的局限性.数组的长度必须是固定的一旦定义之后就无法动态的更改,这就会造成这 ...

  4. 【栈和队列】5、队列概述与数组队列的基本实现 - Java

    3-5 数组队列 简单记录 - bobo老师的玩转算法系列–玩转数据结构 - 栈和队列 队列Queue 队列也是一种线性结构 相比数组,队列对应的操作是数组的子集 只能从一端(队尾)添加元素,只能从另 ...

  5. 进阶高阶IoT架构-教你如何简单实现一个消息队列

    前言 消息队列是软件系统领域用来实现系统间通信最广泛的中间件.基于消息队列的方式是指由应用中的某个系统负责发送消息,由关心这条消息的相关系统负责接收消息,并在收到消息后进行各自系统内的业务处理.消息可 ...

  6. 数组队列如何手撕?解密ArrayBlockingQueue的实现内幕!

    队列 聊起队列,你一定会联想到一个与队列相似的数据结构:栈. 为了更好的理解什么是队列,我们将它和栈来比较一下: 队列的特点是:先进先出,如下图,1先进,1就先出. 图1:队列的图解 栈的特点是:先进 ...

  7. Go语言系列之RabbitMQ消息队列

    1. RabbitMQ是什么?   MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 生活场景: 1.其实我们在双11的时候,当我们凌晨大量的秒 ...

  8. C# 高性能的数组 高性能数组队列实战 HslCommunication的SharpList类详解

    本文将使用一个gitHub开源的组件技术来实现这个功能 github地址:https://github.com/dathlin/HslCommunication                     ...

  9. JAVA之数组队列

    package xxj.datastructure0810; import java.util.Random; public class DataStructure { /** * @param ar ...

随机推荐

  1. 导出excel乱码问题

    今天遇到一个问题,在用C#做导出excel的时候,出现excel乱码问题.百度了下. 发现问题如下: 非中文字符编码问题. 解决方法: 把输出的excel格式设置成UTF-8即可. 更改代码: Res ...

  2. mysql高可用之LVS + KEEPALIVE + MYSQL

    1.架构图 注意 (一)   Mysql需要把bind-address的配置去掉,否则无法实现虚拟ip访问 (二)   关闭所有linux防火墙:/sbin/iptables –F(可能没用) (三) ...

  3. log4net资料收集

    Log4net 日志使用介绍 http://www.cnblogs.com/jys509/p/4699813.html log4net Tutorial http://www.codeproject. ...

  4. Effective Java 26 Favor generic types

    Use generic types to replace the object declaration Add one or more type parameters to its declarati ...

  5. ubuntu16.04服务器配置ssh免密登录

    原版资料英文,链接在此  https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 在客户端操作 ssh-k ...

  6. Python 元组知识点

    1.元组是一个有序的集合,2.元组和列表一样可以使用索引.切片来取值.3.创建元组后不能在原地进行修改替换等操作.4.元组支持嵌套,可以包含列表.字典和不同元组.5.元组支持一般序列的操作,例如:+. ...

  7. 开启mysql慢查询

    Linux查看mysql 安装路径一.查看文件安装路径由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址).这里以mysql为例.比如说我安装了mysql,但是不知道文件都安装在哪些 ...

  8. 迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板

    开发板光盘资料包含:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用手册. 4412开发板简介: iTOP-Exynos4412开发板采用 ...

  9. C自学笔记-递归与迭代的使用方法笔记与两者的使用场合

    递归和迭代在刚开始学C语言的时候就学过,但是不知道怎么使用.今天遇到一个题目分析过后 我瞬间想起来之前学过递归的方法,做完题后顺便翻了翻书整理了这个笔记.题目大概是这样的. 题目:猴子吃桃问题:猴子第 ...

  10. [转载]两个半小时学会Perl

    Learn Perl in about 2 hours 30 minutes By Sam Hughes Perl is a dynamic, dynamically-typed, high-leve ...