//顺序队列操作
#define QUEUEMAX 15
typedef struct
{DATA data[QUEUEMAX]; // 队列数组 int head;   //队头 int tail;   // 队尾 } SeqQueue;
SeqQueue *SeqQueueInit()
{SeqQueue *q;if(q=(SeqQueue *)malloc(sizeof)(SeqQueue))   // 申请保存队列的内存 {q->head = 0;  // 设置队头 q->tail = 0;  // 设置队尾 return q;}elsereturn NUll;   // 返回空
}
void SeqQueueFree (SeqQueue *q) // 释放队列
{if(q!=NULL)free(q);
}
int SeqQueueIsEmpty(SeqQueue *q)  //  队列是否为空
{return (q->head==q->tail);
}
int SeqQueueIsFull(SeqQueue *q)  //队列是否已满
{return(q->tail==QUEUEMAX);
}
int SeqQueueLen(SeqQueue *q) // 获取队列长度
{return (q->tail-q->head);
}
int SeqQueueIn(SeqQueue *q,DATA data)  //顺序队列的入队函数
{if(q->tail==QUEUEMAX){printf("队列已满!\n");return(0);}else{q->data[q->tail++]=data;return(1);}
}
DATA *SeqQueueOut(SeqQueue *q)  //顺序队列出队
{if(q->head == q->tail){printf("\n队列已空! \n");return NULL;}else{return &(q->data[q->head++]);}
}
DATA *SeqQueuePeek(SeqQueue *q)  //获取头元素
{if(SeqQueueIsEmpty(q)){printf("\n队列为空!\n");return NULL;}else{return &(q->data[q->head]);}
}

转载于:https://blog.51cto.com/9815936/1639811

队列学习笔记 顺序队列相关推荐

  1. 《数据结构、算法与应用 —— C++语言描述》学习笔记 — 优先级队列 — 左高树

    <数据结构.算法与应用 -- C++语言描述>学习笔记 - 优先级队列 - 左高树 一.左高树 1.外部节点 2.高度优先左高树 (1)定义 (2)特性 (3)HBLT 与 大小根树 3. ...

  2. 数据结构基础:栈和队列学习笔记

    1.栈 1.1 栈的定义 栈是只能通过访问它的一端来实现数据的存储和检索的一种特殊的线性数据结构.栈的修改要遵循先进后出的原则,这个是栈的核心.在栈中进行插入和删除操作的一端称为栈顶(Top).另一端 ...

  3. python异步io 队列_python 学习笔记九 队列,异步IO

    queue (队列) 队列是为线程安全使用的. 1.先入先出 import queue #测试定义类传入队列class Foo(object): def __init__(self,n): self. ...

  4. Linux学习笔记-消息队列概念

    目录 System V IPC概念 System V IPC对象的访问 举几个例子 IPC对象的权限和所有者结构体 消息队列 消息队列属性 System V IPC概念 Unix系统存在信号.管道和命 ...

  5. 算法竞赛进阶指南——队列学习笔记

    https://flowus.cn/xjsc01/share/395ca9dc-315c-4bd5-a942-016709980c03 这里面有我个人内容的系统整理 队列和他的变种: 普通队列 双端队 ...

  6. 4.FreeRTOS学习笔记-消息队列

    消息队列 传输的数据不定长 支持先进先出FIFO,同时支持后进先出LIFO 均支持超时机制. 每个消息队列都与消息空间在同一段连续的内存空间中 消息队列的大小是消息队列控制块大小+(单个消息空间大小 ...

  7. Kafka消息队列学习笔记1——Kafka入门1

    目录 1.消息队列 1.1.传统消息队列的应用场景 2.1.1.异步处理 1.1.2.系统解耦 1.1.3.流量削峰 1.1.4.日志处理 1.2.生产者-消费者模型 1.3.消息队列的两种模式 1. ...

  8. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

  9. 数据结构--队列Queue--循环顺序队列

    针对顺序队列中的入队操作:if 队列没满,但是队尾到达数组末尾了,队列"满"了,其实没有满,数据需要整体移至数组头部,才可以继续入队. 为解决该问题,避免数据的挪移,有了循环顺序队 ...

最新文章

  1. CentOS Docker安装配置部署Golang web helloworld
  2. tomcat server.xml中文版
  3. SQL Server中CROSS APPLY和OUTER APPLY的应用详解
  4. 3行代码给你的python提速4倍!
  5. 服务器的智能监控管理结束,通过服务器监控告警进行异常排障
  6. SASS简介及使用方法
  7. python能开发什么产品_三周学 Python ?不,三周做个产品
  8. 最大值_285期 博最大值2路,已经箭在弦上!
  9. Linux学习总结(64)——DBA常用的Linux命令汇总
  10. C++中字符串转换函数to_string
  11. 程序员:站在自学鄙视链顶端的王者(太真实!)
  12. python容易出错的地方_Python中try-except出错后如何从try出错地方继续执行?
  13. DE 31 Non-linear Autonomous Systems
  14. 嵌入式c语言移植,嵌入式c语言位操作的移植与优化.doc
  15. TensorFlow入门操作
  16. 十年老撕鸡分享,五分钟搭建个人轻论坛
  17. 人性:《少年pi的奇幻漂流》和《一九四二》连看小感
  18. 查看远程计算机ip地址吗,我的电脑跟别人远程过可不可以查对方IP地址
  19. JDBC+MySQL入门增删改查案例
  20. python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改

热门文章

  1. Uva - 12050 Palindrome Numbers【数论】
  2. Leetcode PHP题解--D14 561. Array Partition I
  3. 阿里云 Ubuntu PHP7 Nginx Mysql 开发环境搭建
  4. gameplay理解
  5. 使用javascript oop开发滑动(slide) 菜单控件
  6. 禁止PHP警告性错误
  7. JAVA面试题系列:如何解决Redis的并发竞争问题
  8. 优秀代码的必知必会(一)?
  9. 《数据库系统概念》7-函数、存储过程、触发器
  10. C# 托管资源和非托管资源