`

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#集合类 教程学习资源

    总的来说,C#集合类为开发者提供了丰富的工具来管理和操作数据。选择合适的集合类取决于具体需求,例如,是否需要保持元素插入顺序、是否需要快速查找(哈希表)或执行排序等。理解这些集合类的特性和用法对于编写...

    C# 集合类的各个详细的介绍

    C# 是一种面向对象的编程语言,其标准库提供了丰富的集合类来帮助开发者管理数据。在C#中,集合类是用于存储一组对象的数据结构,它们提供了多种操作这些对象的方法。下面将详细介绍C#中的一些主要集合类以及它们的...

    C#的6种常用集合类大比拼

    在C#编程语言中,集合类是处理数据结构的关键组件,它们提供了比传统数组更灵活、功能更丰富的数据存储方式。本文将深入探讨C#中六种常用的集合类,包括它们的特点、用法以及与其他数据结构如数组的区别,旨在帮助...

    C#集合的概念

    System.Collections命名空间提供了多种集合类,如ArrayList、Stack、Queue、Hashtable等,它们各自有不同的功能和用途。然而,这些非泛型集合在处理不同类型的数据时可能会导致类型转换开销,并且在安全性上不如泛型...

    C# 集合的常用方法

    在C#编程语言中,集合是一组对象的容器,提供了方便的数据...学习和熟练掌握这些集合类的使用,对于编写高效、健壮的C#代码至关重要。通过实践和理解不同数据结构的特点,开发者可以根据实际需求选择最合适的集合类型。

    C#集合与字符窜处理C#集合与字符窜处理(源代码)

    在C#编程语言中,集合和字符串处理是两个至关重要的概念。集合是存储一组对象的容器,而字符串处理则是对文本数据进行操作的核心技术。在这个压缩包中,我们很可能是得到了一系列关于这两个主题的源代码示例,这些...

    C# 集合应用

    下面我们将深入探讨这些集合类的应用、基本操作以及一些入门级的知识点。 1. **数组**:数组是最基础的集合类型,它允许我们存储固定数量的同类型元素。在C#中,数组可以是一维、二维或多维的。例如: ```csharp ...

    c# queue 队列例子

    首先,让我们了解C#中的`Queue`类。`System.Collections.Queue`是.NET框架提供的一个容器,用于存储按顺序插入和删除的对象。队列的操作主要有以下几种: 1. `Enqueue(item)`: 将一个元素添加到队列的尾部。 2. `...

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

    在C#编程中,集合类是管理对象的重要工具,提供了灵活的数据存储和操作方式。本文主要探讨了几个常用的集合类,包括Array、ArrayList、List、Hashtable、Dictionary, TValue>、Stack和Queue,以及它们的特点和应用...

    C#6大集合类全面解析

    本文将详细介绍C#中的六大集合类:`ArrayList`、`Stack`、`Queue`、`Hashtable`、`SortedList`以及`NameValueCollection`。 #### 二、数组的不足与集合的优势 在深入探讨这六种集合类之前,我们首先来看一下数组的...

    c#集合ppt

    2. **System.Collections命名空间**:C#中的集合类主要位于System.Collections和System.Collections.Generic命名空间下。System.Collections包含非泛型集合,而System.Collections.Generic包含泛型集合,泛型集合...

    c#官方线程安全集合源码

    在.NET框架中,C#提供了一系列的线程安全集合类,这些类被设计为在多线程环境下可以安全地进行数据操作。这些类是通过`System.Collections.Concurrent`命名空间提供的,确保了在并发访问时的数据一致性。让我们深入...

    C# 各种通用类集合

    9. **SortedDictionary, TValue>** 和 **SortedList, TValue>**: 这两个集合类都是有序的键值对集合,不同之处在于SortedDictionary使用自定义比较器,而SortedList则根据键的自然顺序排序。 在ASP.NET Web API开发...

    C#集合容器(collection)详解

    ### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....

    C# 集合 使用总结

    C# 提供了多种类型的集合,包括但不限于数组、ArrayList、List、HashSet、SortedSet、Stack、Queue 以及键值对集合如 Dictionary, TValue> 和 SortedDictionary, TValue> 等。每种集合都有其独特的特性和应用场景。 ...

    C# 关于集合的程序

    本项目“C#关于集合的程序”显然关注的是如何在C#中有效地利用这些集合类来实现各种功能。 1. **List**: List是.NET框架中最常用的动态数组,它允许在运行时动态地添加、删除元素。List继承自IList接口,并实现了 ...

    c#集合的学习读书笔记 学习心得

    除此之外,System.Collections.Specialized 命名空间还包含了其他的集合类,如 HybridDictionary,当元素数量较少时,它以更高效的方式运作,随着元素增加,自动转换为 Hashtable。 最后,我们提到了自定义泛型集合...

    c# 泛型、集合应用实例源码

    集合是一组对象的容器,C#提供了多种集合类,例如ArrayList、LinkedList、HashSet等。在泛型引入后,使用泛型集合如List和Dictionary, TValue>成为首选,因为它们具有更好的类型安全性。例如,List用于存储同类型的...

    C#中queue固定队列长度设置和使用

    这样,它可以无缝地与其他.NET集合类一起使用。为了完整实现`IEnumerable<T>`接口,我们需要提供`GetEnumerator`方法,以便遍历队列中的元素。此外,根据实际需求,还可以添加其他方法,如获取当前队列大小、检查...

Global site tag (gtag.js) - Google Analytics