算法速成(九)队列

可能大家都知道,线性表的变种非常非常多,比如今天讲的“队列”,灰常有意思啊。

一:概念

队列是一个”先进先出“的线性表,牛X的名字就是“First in First Out(FIFO)”,

生活中有很多这样的场景,比如读书的时候去食堂打饭时的”排队“。当然我们拒绝插队。

二:存储结构

  前几天也说过,线性表有两种”存储结构“,① 顺序存储,②链式存储。当然“队列”也脱离

不了这两种服务,这里我就分享一下“顺序存储”。

顺序存储时,我们会维护一个叫做”head头指针“和”tail尾指针“,分别指向队列的开头和结尾。

代码段如下:

#region 队列的数据结构
     /// <summary>
 /// 队列的数据结构
 /// </summary>
 /// <typeparam name="T"></typeparam>
     public class SeqQueue<T>
     {
         private const int maxSize = 100;   

         public int MaxSize
         {
             get { return maxSize; }
         }   

         /// <summary>
 /// 顺序队列的存储长度
 /// </summary>
         public T[] data = new T[maxSize];   

         //头指针
         public int head;   

         //尾指针
         public int tail;   

     }
     #endregion

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索指针
, 存储
, 队列
, 数据结构 线性表 算法
, maxsize
, public
, 顺序队列
, 顺序
, 几天洗一次头
线性
算法速成、数据结构与算法速成、多级反馈队列调度算法、算法提高 队列操作、多级队列调度算法,以便于您获取更多的相关知识。

时间: 2024-12-03 12:45:43

算法速成(九)队列的相关文章

算法速成(十)栈

今天跟大家聊聊栈,在程序设计中,栈的使用还是非常广泛的,比如有"括号匹配问题","html 结构匹配问题". 所以说掌握了"栈"的使用,对我们学习算法还是很有帮助的. 一 : 概念 栈,同样是一种特殊的线性表,是一种Last In First Out(LIFO)的形式,现实中有 很多这样的例子, 比如:食堂中的一叠盘子,我们只能从顶端一个一个的取. 二:存 储结构 "栈"不像"队列",需要两个指针来维护,栈

JavaScript中数据结构与算法(二):队列

  这篇文章主要介绍了JavaScript中数据结构与算法(二):队列,队列是只允许在一端进行插入操作,另一个进行删除操作的线性表,队列是一种先进先出(First-In-First-Out,FIFO)的数据结构,需要的朋友可以参考下 队列是只允许在一端进行插入操作,另一个进行删除操作的线性表,队列是一种先进先出(First-In-First-Out,FIFO)的数据结构 队列在程序程序设计中用的非常的频繁,因为javascript单线程,所以导致了任何一个时间段只能执行一个任务,而且还参杂了异步

用一个数组、头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算。

问题描述 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 用一个数组.头指针和元素个数合在一起所构成的结构来存储顺序队列,设计算法以实现队列的各运算. 解决方案 http://www.docin.com/p-524422606.html

EM算法的九层境界:​Hinton和Jordan理解的EM算法

前言 为什么说EM算法是他们强强发力的领域呢? 这里我们讨论Hinton和统计大神Jordan的强强发力的领域.当Bayes网络发展到高级阶段, 概率图模型使得计算成为问题,由此开启了Variational Bayes领域.在"变の贝叶斯"里面, 我们解释了研究Variational Bayes,有3拨人. 第一拨人, 把物理的能量搬到了机器学习(参考 "给能力以自由吧!"). 第二拨人, 就是Hinton,他将VB和EM算法联系了起来,奠定了现在我们看到的VB的基

算法速成(四)五大经典查找之线性查找

在我们的生活中,无处不存在着查找,比如找一下班里哪个mm最pl,猜一猜mm的芳龄....... 对的 这些都是查找. 在我们的算法中,有一种叫做线性查找. 分为:顺序查找. 折 半查找. 查找有两种形态: 分为:破坏性查找,   比如有一群mm,我猜她们的 年龄,第一位猜到了是23+,此时这位mm已经从我脑海里面的mmlist中remove掉了. 哥不找23+ 的,所以此种查找破坏了原来的结构. 非破坏性查找, 这种就反之了,不破坏结构. 顺序查找: 这种非常简单,就是过一下数组,一个一个的比,

算法速成(十五)图之“最小生成树”和“最短路径”

今天是大结局,说下"图"的最后一点东西,"最小生成树"和"最短路径". 一: 最小 生成树 1. 概念 首先看如下图,不知道大家能总结点什么. 对于一个连通图G, 如果其全部顶点和一部分边构成一个子图G1,当G1满足: ① 刚好将图中所有顶点连通.② 顶点不存在回路.则称G1就是G的"生成树". 其实一句话总结就是:生成树是将原图的全部 顶点以最小的边连通的子图,这不,如下的连通图可以得到下面的两个生成树. ② 对于一个带权的

算法速成(十三)树操作之赫夫曼树

今天说下最后一种树,大家可否知道,文件压缩程序里面的核心结构,核心算法是什么?或许你知 道,他就运用了赫夫曼树. 听说赫夫曼胜过了他的导师,被认为"青出于蓝而胜于蓝",这句 话也是我比较欣赏的,嘻嘻. 一  概念 了解"赫夫曼树"之前,几个必须要知道 的专业名词可要熟练记住啊. 1: 结点的权    "权"就相当于"重要度" ,我们形象的用一个具体的数字来表示,然后通过数字的大小来决定谁重要,谁不重要. 2: 路径 树中从&q

算法速成(八)线性表之链表

一:线性表的简单回顾 上一篇跟大家聊过"线性表"顺序存储,通过实验,大家也知 道,如果我每次向 顺序表的头部插入元素,都会引起痉挛,效率比较低下,第二点我们用顺序 存储时,容 易受到长度的限制,反之就会造成空间资源的浪费. 二:链表 对于 顺序表存在的若干问题,链表都给出了相应的解决方案. 1. 概念:其实链表的"每个节点" 都包含一个"数据域"和"指针域". "数据域"中包含当前的数据. "指针

算法速成(三)七大经典排序之直接插入排序、希尔排序和归并排序

直接插入排序: 这种排序其实蛮好理解的,很现实的例子就是俺们斗地主,当我们抓到一 手乱牌时,我们就要按照大小梳理扑克,30秒后, 扑克梳理完毕,4条3,5条s,哇塞......  回忆一下,俺们当时是怎么梳理的. 最左一张牌是3,第二张牌是5,第三张牌又是3, 赶紧插到第一张牌后面去,第四张牌又是3,大喜,赶紧插到第二张后面去, 第五张牌又是3, 狂喜,哈哈,一门炮就这样产生了. 怎么样,生活中处处都是算法,早已经融入我们的生活和 血液. 下面就上图说明: 看这张图不知道大家可否理解了,在插入排