简单数据结构类——Queue

简介: 简单数据结构类——Queue

Queue是C#为我们封装好的类,它的本质是object[]数组,其中封装了特殊的存储规则。

Queue是队列存储容器,队列是一种先进先出的数据结构,先存入的数据先获取,后存入的数据后获取。当我们需要对各项进行先进先出的访问时,则使用队列。当我们在列表中添加一项,称为入队;当我们从列表中移除一项时,称为出队.在队列中, 我们可以存储相同类型和不同类型的元素。通常, 当我们以与存储在集合中相同的方式访问该信息时, 队列是有用的, 因为它是存储数据的临时存储。

那么我们改如何申明Queue呢,我们可以使用以下代码来申明:

Queue queue = new Queue();//Stack在System.Collections命名空间下定义;因此,在程序中使用Queue时,必须添加System.Collections命名空间

下面列举 Queue 类的一些常用的 方法:

public virtual void Clear();//从 Queue 中移除所有的元素。
public virtual bool Contains( object obj );//判断某个元素是否在 Queue 中。
public virtual object Dequeue();//移除并返回在 Queue 的开头的对象。
public virtual void Enqueue( object obj );//向 Queue 的末尾添加一个对象。
public virtual object[] ToArray();//复制 Queue 到一个新的数组中。
public virtual void TrimToSize();//设置容量为 Queue 中元素的实际个数。

需要注意的是,Queue的增删查改有些不同,Queue队列中不存在删除的概念,只有取的概念,即取出先加入的对象,和栈的方法相同。查看只能查看队列头部数据但并不会将其移除,也可以查看数据是否存在于队列中。Queue队列无法改变其中的数据,只能进出队列。如果非要改的化,只能和栈一样选择清空。


遍历

长度

Console.WriteLine(queue.Count);

用foreach遍历

foreach(object item in queue)
{
Console.WriteLine(item);
}

第三种遍历方法是将队列转换为object数组

Object[] array = queue.ToArray();
for(int i=0;i<array.Length;i++)
{
Console.WriteLine(array[i]);
}

循环出列

while(queue.Count>0)
{
Object o=queue.Dequeue();
Console.WriteLine(o);
}
Console.WriteLine(queue.Count);

由于Queue用万物之父来存储数据,所以存在装箱拆箱的概念。当我们往其中进行值类型存储时,就是在装箱;当我们将值类型对象取出来转换使用时,就是在拆箱。

目录
相关文章
|
9月前
|
安全 Java 调度
【Queue队列数据结构及其应用】
【Queue队列数据结构及其应用】
|
10月前
|
存储 canal 前端开发
数据结构之Queue | 让我们一块来学习数据结构
数据结构之Queue | 让我们一块来学习数据结构
54 0
|
2月前
|
存储 安全 索引
数据结构之Queue入门与详解
数据结构之Queue入门与详解
49 0
数据结构之Queue入门与详解
|
21天前
|
C语言 C++
【数据结构】C语言实现:栈(Stack)与队列(Queue)
【数据结构】C语言实现:栈(Stack)与队列(Queue)
|
2月前
|
存储
【数据结构】队列(Queue)的实现 -- 详解
【数据结构】队列(Queue)的实现 -- 详解
|
2月前
数据结构 模拟实现Queue队列(双链表模拟)
数据结构 模拟实现Queue队列(双链表模拟)
35 1
|
2月前
|
存储 算法 Java
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
【数据结构与算法】7、队列(Queue)的实现【用栈实现队列】
42 0
|
7月前
|
算法 索引 Python
数据结构与算法-(8)---队列(Queue)
数据结构与算法-(8)---队列(Queue)
42 1
|
8月前
栈(stack)和队列(queue)
栈(stack)和队列(queue)
33 0
|
9月前
|
消息中间件 算法 编译器
栈(Stack)和队列(Queue)
栈(Stack)和队列(Queue)
33 0