队列:

队列是一个有序列表,遵循先入先出原则,可以用数组或链表实现

使用场景

用于排队,按顺序执行

public static void Main(string[] args)
{
ArrayQueue<int> queue = new ArrayQueue<int>(1000);
queue.Push(1);
queue.Push(2);
queue.Push(3);
queue.Push(4);
queue.Push(5); Console.WriteLine(queue.Pop());
Console.WriteLine(queue.Pop());
queue.Push(6);
queue.Push(7);
queue.Print();
Console.ReadKey();
}

  数组队列

public class ArrayQueue<T>
{
private int _front = -1; //队首
private int _rear = -1; //队尾
private int _maxSize = 0;
private T[] _arr = null; public ArrayQueue(int maxSize)
{
_maxSize = maxSize;
_arr = new T[maxSize];
} public bool IsFull()
{
return _rear >= _maxSize - 1;
} public bool IsEmpty()
{
return _front >= _rear;
} public void Push(T n)
{
if (this.IsFull())
{
throw new Exception("队列已满");
}
_arr[++_rear] = n;
} public T Pop()
{
if (this.IsEmpty())
{
throw new Exception("队列已空");
}
return _arr[++_front];
} public void Print()
{
if (this.IsEmpty())
{
Console.WriteLine("队列已空");
return;
}
for (int i = _front + 1; i <= _rear; i++)
{
Console.WriteLine(i);
}
}
}

  

C# 数据结构和算法-数组队列的更多相关文章

  1. JavaScript数据结构与算法-数组练习

    一. 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法. // 创建一个记录学生成绩的对象 const Students = function Students () ...

  2. Python实现的数据结构与算法之队列详解

    本文实例讲述了Python实现的数据结构与算法之队列.分享给大家供大家参考.具体分析如下: 一.概述 队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操 ...

  3. 【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现

      本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...

  4. Java数据结构和算法(五)——队列

    队列.queue,就是现实生活中的排队. 1.简单队列: public class Queqe { private int array[]; private int front; private in ...

  5. 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现

      本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...

  6. Java数据结构和算法(二)--队列

    上一篇文章写了栈的相关知识,而本文会讲一下队列 队列是一种特殊的线性表,在尾部插入(入队Enqueue),从头部删除(出队Dequeue),和栈的特性相反,存取数据特点是:FIFO Java中queu ...

  7. Java成神之路:第三帖----数据结构与算法之队列

    数据结构与算法--队列 今天掉了两根头发,摸掉的,记得 别乱摸,很珍贵的!! 什么是队列? 1)队列是一个有序列表,可以用数组或是链表来实现 2)遵循 先入先出 的原则.即:先存入队列的数据,要先取出 ...

  8. JavaScript 数据结构与算法2(队列和双端队列)

    学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.队列和双端队列 队列和栈非常类似,但是使用了与 后 ...

  9. Java数据结构和算法 - 数组

    Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...

  10. 【数据结构与算法】——队列(Queue)

    队列(Queue)的一个使用场景 银行排队的案例: 队列(Queue)介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取出来.后存入的要后取出来. ...

随机推荐

  1. VS2019编译Qt4.8.7

    下载4.8.7源码Index of /archive/qt/4.8/4.8.7 复制mkspecs\win32-msvc2015到mkspecs\win32-msvc2019 修改qmake.conf ...

  2. 在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题

    转载链接:https://blog.csdn.net/weixin_39085109/article/details/80189899

  3. Springboot打包部署的步骤

    1.配置pom.xml 引入插件 <groupId>com.bostech</groupId> <artifactId>dcs</artifactId> ...

  4. 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的互转

    /**火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的互转  * Created by macremote on 16/5/3.  */ function GPSUtil (){   v ...

  5. Razor视图cshtml做到运行时编译【提高开发效率】

    当你的.NET开发工具升级到.NET Core版本以上,就会发现有时候无法将视图界面做的修改可以直接保存后刷新输出,一般都需要重新热重载或重新编译,这样会导致开发效率过慢的行为,开发者无法直接直观地看 ...

  6. matlab读写文件操作

    文件相对路径 在编码中尽可能使用相对路径: 1.当前路径下,直接:' xxx.bin ' 2.在下一级路径下,使用:' .\下一级路径文件名\xxx.bin ' 3.在上一级路径下,使用:' ..\x ...

  7. QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加速高分辨率小目标检测的级联稀疏查询)

    QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加 ...

  8. Elasticsearch 实战

    需求 假设现在有这么一个需求,系统接了很多的报文,需要提供全文检索,为了简化,报文目前只有类型,流水号,内容这三个字段. 索引设计 建立msg索引,映射规则如下 PUT /msg { "ma ...

  9. noi 45 金币

    noi 45 金币 1.描述 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后两天(第二天和第三天)里,每天收到两枚金币:之后三天(第四.五.六天)里,每天收到三枚金币:之后四天( ...

  10. windos下激活python虚拟环境

    1.从终端中找到解释器的目录 2.cd到Scripts,输入激活命令activate  这样就表示激活成功了