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中出队一个对象元素,并将此元素返回。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值