队列:

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

使用场景

用于排队,按顺序执行

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. Kafka -- 基本操作

    kafka 环境的安装 docker run -d --name zookeeper_zh --restart always --network kafka-net -e ALLOW_ANONYMOU ...

  2. 国产DP4344兼容替代CSM4344 192K双通道输出数模转换芯片

    DP4344 是一款完整的 2 通道输出数模转换芯片, 内含插值滤波器.Multi-Bit 数模转换器.输出模 拟滤波器,并支持大部分的音频数据格式.DP4344 基于一个带线性模拟低通滤波器的四阶 ...

  3. CAD梦想画图中的“绘图工具——多线段”

    CAD软件多线段命令是作为单个平面对象创建的相互连接的线段序列.可以创建直线段.圆弧段或两者的组合线段. 执行方式: (1)单击菜单栏"绘图→多线段".如图: (2)单击绘图工具栏 ...

  4. 路由器WDS(无线桥接,无线中继)

    路由器WDS(无线桥接,无线中继)设置,网上的坑货教程只教了一半,却不教另一半.这些教程一般会教你填写远程路由(被中继的路由器信息),顶多再教你把本地路由的网段,改得跟远程路由一样,或关掉本地路由的D ...

  5. e网通公告

    title:用户须知titleend<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \&qu ...

  6. 学习-自增id++的问题

    代码示例: let id = 0   const todos = ref([   { id: id++, text: 'Learn HTML' },   { id: id++, text: 'Lear ...

  7. git命令,回滚上一个版本,回滚n个版本,撤销回滚

    1 回滚到上一个版本 git checkout . :add之前的回滚 git reset --hard:add之后,commit之前 git reset --hard origin/test:com ...

  8. Pyscript使用本地Pyodide配置方法

    背景 Pyscript工程本身很小,KB级别,引用的Pyodide工程比较大,因为包含了各种类库的wasm文件,默认引用了cdn上的文件,cdn上的文件又在外网,访问会中断导致不可用,于是需要使用本地 ...

  9. Cadence Allegro创建盲埋孔

    1.首先创建两个常规过孔,文件名分别为Via10d4.Via16d8. 2.打开PCB Editor,然后选择菜单Setup -> B/B ViaDefinitions -> Define ...

  10. SQL逻辑查询语句执行顺序—练习题

    在做练习题之前要重点熟悉select 的执行顺序 1.SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table& ...