C#如何实现队列

和栈相反,队列是先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾,允许删除的一端称为队头。在队列的实现过程中主要有两个操作,即入队和出队。

(1)入队就是在队列的尾部添加数据,队列数据个数加一,尾指针后移。

(2)出队就是在队列的头部取的数据后,然后删除该数据,头指针后移。

具体代码如下:

/// <summary>/// 队列类/// </summary>public class CQueue{    private Clist m_List;    public CQueue()    {        //构造函数        //这里使用到前面编写的List        m_List = new Clist();    }    /// <summary>    /// 入队    /// </summary>    public void EnQueue(int DataValue)    {        //功能:加入队列,这里使用List 类的Append 方法:        //尾部添加数据,数据个数加1        m_List.Append(DataValue);    }    /// <summary>    /// 出队    /// </summary>    public int DeQueue()    {        //功  能:出队        //返回值: 2147483647 表示为空队列无返回       int QueValue;        if (!IsNull())        {            //不为空的队列           //移动到队列的头            m_List.MoveFrist();            //取得当前的值            QueValue = m_List.GetCurrentValue();            //删除出队的数据            m_List.Delete();            return QueValue;        }        return 2147483647;    }    /// <summary>    /// 判断队列是否为空    /// </summary>    public bool IsNull()    {        //功能:判断是否为空的队列        return m_List.IsNull();    }    /// <summary>    /// 清空队列    /// </summary>    public void Clear()    {        //清空链表        m_List.Clear();    }    /// <summary>    /// 取得队列的数据个数    /// </summary>    public int QueueCount    {        get        {            //取得队列的个数            return m_List.ListCount;        }    }}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 队列
, return
, public
, 个数
, clist中包含clist
, clist
, c# winfrom 判断为空
, C#环形队列
不为空元素
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-10-22 18:00:32

C#如何实现队列的相关文章

[数据结构] 队列

队列 队列是一种操作受限制的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.  队列中没有元素时,称为空队列.在队列这种数据结构中,最先插入的元素将是最先被删除的元素:反之最后插入的元素将是最后被删除的元素,因此队列又称为"先进先出"(FIFO-first in first out)的线性表. 队列空的条件:front=rear 队列满的条件: rear = MAXSIZE 顺序队列 建立顺

缓冲区-关于操作系统中缓冲池里面队列的分类问题。。

问题描述 关于操作系统中缓冲池里面队列的分类问题.. 缓冲池(Buffer Pool)中的缓冲区可供多个进程共享,缓冲池中的缓冲区根据类型划分,相同类型的缓冲区链成一个队列,于是形成了三个队列: 空缓冲队列 输入队列(装满输入数据的缓冲区链成的队列) 输出队列(装满输出数据的缓冲区链成的队列) 然而,在UNIX的缓冲区管理中,设置了三种队列,分别为: 自由buf队列 设备buf队列 NODEV设备队列 那么缓冲区到底是怎么划分的..?UNIX中的三种队列和缓冲池中划分的三种队列有什么关系? 解决

数据结构——队列

1 队列是一种只允许在表的一端插入元素,在另一端删除元素的特殊的线性表.允许插入的一端成为队尾(rear),允许删除的一端成为队头(front).当队列中没有任何元素时成为空队列.队列是一种先进先出的线性表,简称FIFO表. 2 与栈类似,队列也是一种操作受限的特殊的线性表,同样可以采用顺序存储结构和链式存储结构来表示队列. 3 队列的顺序存储表示--循环队列 队列的顺序存储表示同样是利用一维数组来实现.为了解决"假溢出"问题,可以将队列的数组看成是头尾相接的环状空间,当队尾元素放到数

消息队列入门(四)ActiveMQ的应用实例

部署和启动ActiveMQ 去官网下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.12.0-bin.tar.gz, 解压到本地目录,进入到bin路径下, 运行activemq启动ActiveMQ. 运行方式:启动 ./activemq start ActiveMQ默认使用的TCP连接端口是61616, 5.0以上版本默认启动时,开启了内置的Jetty服务器,可以进入控制台查看管理. 启动ActiveMQ以后,登陆:http://loca

wcf-使用MSMQ消息队列的WCF的效率的问题。

问题描述 使用MSMQ消息队列的WCF的效率的问题. 请教个问题,WCF在使用MSMQ的时候,每次WCF程序处理MSMQ中的数据量,每秒只有几百条. 以下是测试数据 处理消息数: 180000 开始时间: [2013-11-01 15:35:27] Start To Save Log To DB. 结束时间: [2013-11-01 15:51:12] Finish To Save Log To DB. 耗时: 00:15:45 基本上算下来也就每秒190多条,以前好的时候可以达到200多条,其

java concurrent包自带线程池和队列详细讲解

Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用.为我们在开发中处理线程的问题提供了非常大的帮助.二:线程池线程池的作用:线程池作用就是限制系统中执行线程的数量.     根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪费了系统资

STL--双端队列(deque)和链表(list)

双端队列(deque容器类): #include<deque>与vector 类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间. 与vector不同的是:deque 还支持从开始端插入数据:push_front() . 此外deque 不支持与vector 的capacity() .reserve() 类似的操作. deque,是"double-ended queue"的缩写.可以随机存取元素(用索引直接存取). 数组头部和尾部添加或移除元素都

java如何队列同步redis?

问题描述 java如何队列同步redis? 就是数据批量插入redis,然后再同步插入到数据库里面,怎么搞 解决方案 java redis使用之利用jedis实现redis消息队列0135 java redis使用之利用jedis实现redis消息队列java redis使用之利用jedis实现redis消息队列 解决方案二: 一般是数据先插入数据库,然后再利用触发器等把数据插入redis.或者用过期方式来从数据库同步数据到redis

Linux TCP队列相关参数的总结

文/锋寒 在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲.队列有关的参数.网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义.本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记忆.注意,本文内容均来源于参考文档,没有去读相关的内核源码做验证,不能保证内容严谨正确.作为Java程序员没读过内核源码是硬伤. 下面我以server端为视角,从 连接

消息队列入门(二)消息队列的规范和开源实现

1.AMQP规范 AMQP 是 Advanced Message Queuing Protocol,即高级消息队列协议.AMQP不是一个具体的消息队列实现,而 是一个标准化的消息中间件协议.目标是让不同语言,不同系统的应用互相通信,并提供一个简单统一的模型和编程接口. 目前主流的ActiveMQ和RabbitMQ都支持AMQP协议. AMQP相关的角色和职责 Producer 消息生产者 一个给exchange发送消息的程序,发送方式大致是:它首先创建一个空消息,然后填上内容.路由KEY,最后发