Stack和Queue:后进先出和先进先出

Queue是先进先出的集合而Stack是后进先出的集合。这两个集合在日常的工作中也经常会用到。Queue相当我们去银行柜台排队,大家依次鱼贯而行。Stack象我们家中洗碗,最后洗好的碗叠在最上面,而下次拿的时候是最先拿到最后叠上去的碗。了解了这样场景,就很容易明白Stack和Queue可用在哪里了。

比如我们为医院作一个排队叫号的系统,那肯定是选择Queue对象处理。如果我们要为出牌或下棋准备一个场景,那肯定是选择Stack,因为通过Stack至少可用提供用户悔棋啊。

以下是Queue的代码演示:

System.Collections.Queue q = new System.Collections.Queue();

for (int i = 0; i <= 10; i++)

{

q.Enqueue(i);//入队

}

System.Console.WriteLine(q.Count);

while (q.Count > 0)

{

System.Console.WriteLine(q.Dequeue());//出队

}

运行的结果如图3.1.27所示:

clip_image002

图3.1.27

以下是Stack的代码演示:

System.Collections.Stack s = new System.Collections.Stack();

for (int i = 0; i <= 10; i++)

{

s.Push(i);//入栈

}

System.Console.WriteLine(s.Count);

while (s.Count > 0)

{

System.Console.WriteLine(s.Pop());//出栈

}

虽然放置元素的次序和Queue一样,但取出的顺序正好相反,如图3.1.28:

clip_image004

图3.1.28

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值