C# 数据结构和算法-数组队列
队列:
队列是一个有序列表,遵循先入先出原则,可以用数组或链表实现
使用场景
用于排队,按顺序执行
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# 数据结构和算法-数组队列的更多相关文章
- JavaScript数据结构与算法-数组练习
一. 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法. // 创建一个记录学生成绩的对象 const Students = function Students () ...
- Python实现的数据结构与算法之队列详解
本文实例讲述了Python实现的数据结构与算法之队列.分享给大家供大家参考.具体分析如下: 一.概述 队列(Queue)是一种先进先出(FIFO)的线性数据结构,插入操作在队尾(rear)进行,删除操 ...
- 【Java数据结构学习笔记之二】Java数据结构与算法之队列(Queue)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
- Java数据结构和算法(五)——队列
队列.queue,就是现实生活中的排队. 1.简单队列: public class Queqe { private int array[]; private int front; private in ...
- 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
本篇是数据结构与算法的第三篇,本篇我们将来了解一下知识点: 队列的抽象数据类型 顺序队列的设计与实现 链式队列的设计与实现 队列应用的简单举例 优先队列的设置与实现双链表实现 队列的抽象数据类型 ...
- Java数据结构和算法(二)--队列
上一篇文章写了栈的相关知识,而本文会讲一下队列 队列是一种特殊的线性表,在尾部插入(入队Enqueue),从头部删除(出队Dequeue),和栈的特性相反,存取数据特点是:FIFO Java中queu ...
- Java成神之路:第三帖----数据结构与算法之队列
数据结构与算法--队列 今天掉了两根头发,摸掉的,记得 别乱摸,很珍贵的!! 什么是队列? 1)队列是一个有序列表,可以用数组或是链表来实现 2)遵循 先入先出 的原则.即:先存入队列的数据,要先取出 ...
- JavaScript 数据结构与算法2(队列和双端队列)
学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.队列和双端队列 队列和栈非常类似,但是使用了与 后 ...
- Java数据结构和算法 - 数组
Q: 数组的创建? A: Java中有两种数据类型,基本类型和对象类型,在许多编程语言中(甚至面向对象语言C++),数组也是基本类型.但在Java中把数组当做对象来看.因此在创建数组时,必须使用new ...
- 【数据结构与算法】——队列(Queue)
队列(Queue)的一个使用场景 银行排队的案例: 队列(Queue)介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取出来.后存入的要后取出来. ...
随机推荐
- 掌控安全学院SQL注入靶场-布尔盲注(二)
首页打开如下 判断注入 闭合报错 先判断数据库的长度....
- 使用IntelliJ创建第一个简单的Springboot项目
使用Intellij创建Springboot项目 使用IntelliJ创建Springboot项目是非常方便的,创建过程中,我们可以自由的选择要启用的springboot生态里的各种框架.插件.本文只 ...
- 微信小程序云开发使用Typescript
1.首先参考陈希章@中国在微信小程序开发中使用Typescript中的内容了解相关的内容 2.按以下步聚进行设置 1)确认本机环境已安装npm.通过在安装目录下输入 npm --v 如返回具体的版本, ...
- Linux下clang、gcc、intel编译器最新版本安装笔记
转自 http://t.zoukankan.com/opangle-p-2838554.html
- docker 操作常用命令
镜像 #以tomcat为基础镜像创建一个容器,容器名为my-tomcat #拉取tomcat最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取. do ...
- windows 安装mysql-8.0.13(zip安装)
安装环境说明 系统版本:windows10 mysql版本:mysql-8.0.13-winx64.zip 下载地址:http://mirrors.163.com/mysql/Downloads/My ...
- Linux的stat命令结果说明
There are 3 kind of "timestamps": Access - the last time the file was read Modify - the la ...
- 新建zabbix数据库
1.安装mysqldnf install -y @mysqlsystemctl start mysqld.servicesystemctl enable mysqld.service初始化mysqlm ...
- SpringBoot配置双数据源
SpringBoot配置双数据源 一.搭建springboot项目 二.添加依赖 <dependencies> <!--web服务--> <dependency> ...
- Win10微软官方镜像iso文件下载
1.转到下载页面2.按F12后点击小窗口左上角的手机图标3:刷新页面开始下载(win10.iso:链接)