`

C#集合类Queue

阅读更多


队列(Queue)在程序设计中扮演着重要的角色,因为它可以模拟队列的数据操作。例
如,排队买票就是一个队列操作,新来的人排在后面,先来的人排在前面,并且买票请求
先被处理。为了模拟队列的操作,QueueArrayList的基础上加入了以下限制:


·
元素采用先入先出机制(FIFOFirst In First Out),即先进入队列的元素必须先离
开队列。最先进入的元素称为队头元素。
·
元素只能被添加到队尾(称为入队),不允许在中间的某个位置插入。也就是说,


不支持ArrayList中的Insert方法。
·
只有队头的元素才能被删除(称为出队),不允许直接对队列中的非队头元素进行
删除,从而保证FIFO机制。也就是说,不支持ArrayList中的Remove方法。
·
不允许直接对队列中非队头元素进行访问。也就是说,不支持ArrayList中的索引访
问,只允许遍历访问。
下面的实例展示了如何创建Queue对象,并向Queue对象中入队数据、出队数据、遍历
数据。
创建TestQueue类,在TestQueue.cs中输入如下代码:
using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

namespace Chapter12

{

class TestQueue

{

static void Print(Queue list)

{

Console.Write("
队列内容:");
foreach (string str in list)

System.Console.Write(str + " ");

}


static void Main(string[] args)

{

Queue list = new Queue();

//Add elements

Console.WriteLine("
输入字符串添加到队列(#号结束)");
string str;

do

{

str = Console.ReadLine();

if (str == "#")

break;

else

{
list.Enqueue(str);

}

} while (true);

TestQueue.Print(list);

Console.WriteLine();

//Remove elements

Console.WriteLine("
出队字符串:");
while (list.Count != 0)

{

str = (string)list.Dequeue();

Console.WriteLine(str + " has left the queue.");

}

}

}

}


Main方法中,如下语句构造了一个Queue对象:
Queue list = new Queue();


然后要求用户连续输入若干行字符串,如果输入“#”则结束输入。对于每个输入的字
符串,使用以下语句将字符串添加到Queue对象list的末尾:
list.Enqueue(str);


输入结束后,使用Print方法遍历并打印list中的数据内容。然后使用如下语句从list中逐
一出队元素,并将该元素输出到控制台,直到队列中元素为空:
str = (string)list.Dequeue();

· Queue.Enqueue (object):向Queue中入队一个对象元素。
· Queue.Dequeue ()
:从Queue中出队一个对象元素,并将此元素返回。

分享到:
评论

相关推荐

    C#6大集合类全面解析

    C#6大集合类:1.ArrayList类2.Stack类3.Queue类4.Hashtable类5.SortedList类6.NameValueCollection类。

    C#_集合类_Array,Arraylist,List,Hashtable,Dictionary,Stack,Queue_学习资料

    我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据...

    C# 集合(Collection)

    大多数集合类实现了相同的接口。 集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建 Object 类的对象的集合。在 C# 中,Object 类是所有数据类型的基类。 各种集合...

    C#各类集合汇总

    大多数集合类实现了相同的接口。 平常在工作中List集合是用的最多的,其次是Array(数组).今天整理一下各类形式的集合,不用就容易忘,必须要记录一下. Array Array:在内存上是连续分配的(可定义长度,也可不定义长度),...

    c#队列Queue学习示例分享

    集合>队列Queue>创建队列 System.Collections.Queue类提供了四种重载构造函数。 代码如下:using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections; namespace Console...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    16.2 主要集合类 443 16.2.1 列表集合:List 443 16.2.2 全序 446 16.2.3 搜索List 447 16.2.4 字典集合:Dictionary 449 16.2.5 已排序集合:SortedDictionary和SortedList 453 16.2.6 ...

    (数据结构与算法:C#语言描述(英文)

    在.NET 框架库中包含有一套数据结构类(也称为集合类)。这套类的范围从Array 类、ArrayList 类和Collection 类到Stack类和Queue 类,再到Hashtable 类和SortedList 类。学习数据结构与算法的学生在学习如何实现它们...

    C#关于System.Collections空间详解

    C#的System.Collections命名空间包含可使用的集合类和相关的接口,提供了集合的基本功能。包括了.NET下的非泛型集合类以及非泛型接口等,现详述如下: 该命名空间下的.NET非泛型集合类如下所示: — System....

    Visual C#2010 从入门到精通(Visual.C#.2010.Step.By.Step).完整去密码锁定版 I部分

    10.2.2 queue集合类 187 10.2.3 stack集合类 188 10.2.4 hashtable集合类 189 10.2.5 sortedlist集合类 190 10.2.6 使用集合初始化器 191 10.2.7 比较数组和集合 192 10.2.8 使用集合类来玩牌 192 第10章快速...

    C#泛型Dictionary的用法实例详解

    很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类: 非泛型集合类 泛型集合类 ArrayList List HashTable DIctionary Queue Queue Stack Stack<

    C#全能速查宝典

    1.5.17 Queue类——队列 115 1.5.18 Remove方法——移除指定项 116 1.5.19 RemoveAt方法——移除指定索引处的项 118 1.5.20 Replace方法——替换文件或字符串 119 1.5.21 Reverse方法——反转数组元素 120 1.5.22 ...

    dyArithmetic.zip

    在.NET 框架库中包 含有一套数据结构类(也称为集合类)。这套类的范围从 Array 类、ArrayList 类和Collection 类到Stack 类和Queue 类,再到 Hashtable 类和 SortedList 类。学习数据结构与算法的学生在学习如何...

    Collections in C#

    集合,C#中包括一系列的类,它提供了一个优越的方式阵列功能,如何: ArrayList List HashTable Dictionary SortedList Stack Queue

    C#并行编程高级教程:精通.NET 4 Parallel Extensions中文(第2部分)

    2.1.1 System.Threading.Tasks.Parallel类 2.1.2 Parallel.Invoke 2.2 将串行代码转换为并行代码 2.2.1 检测可并行化的热点 2.2.2 测量并行执行的加速效果 2.2.3 理解并发执行 2.3 循环并行化 2.3.1 Parallel...

    C#并行编程高级教程:精通.NET 4 Parallel Extensions中文(第3部分)

    2.1.1 System.Threading.Tasks.Parallel类 2.1.2 Parallel.Invoke 2.2 将串行代码转换为并行代码 2.2.1 检测可并行化的热点 2.2.2 测量并行执行的加速效果 2.2.3 理解并发执行 2.3 循环并行化 2.3.1 Parallel...

Global site tag (gtag.js) - Google Analytics