C#初学者教程系列16:堆栈Stack

本文是C#初学者简单教程,这是第16篇。感谢观看,记得关注我,后续还有更多教程文章,谢谢。

本文环境为Visual Studio 2019。

我们常常忙于开发,而忘记了有队列、堆栈、集合等这回事。

是的,数据结构当我们在用C#做开发时,时常我们不去关心,为啥?那是因为类库已经给你设计好了,只要学它的api,会用就行。这就是我们习以为常后,反而不知道堆栈的存在的原因。就像神国用操作系统,允许您倒(故意错字)版使用,这样你就不会自己去研究操作系统,慢慢的可以磨灭你们的生机,永久依赖于它的操作系统。

一、类比

在C#中的队列,对应的是Queue这个类,集合对应的是就较多了,比如List。

链表对应啥呢?没错,LinkedList<T>就是。

那么堆栈对应啥呢?嗯,是的,在C#中对应Stack类。

二、堆栈的定义

堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,也叫压栈,当您从列表中移除一项时,称为弹出元素,也叫出栈。

三、C#中的堆栈类

上图是C#中的堆栈类定义。

我们可以看到它允许迭代(IEnumerable),是集合(ICollection)。

四、堆栈类的api用法

1.从 Stack 中移除所有的元素。使用:public void Clear();

2.判断某个元素是否在 Stack 中。使用:public bool Contains(T item);

3.返回在 Stack 的顶部的对象,但不移除它。使用:public T Peek();

4.移除并返回在 Stack 的顶部的对象。使用:public T Pop();

5.向 Stack 的顶部添加一个对象。使用:public void Push(T item);

6.复制 Stack 到一个新的数组中。使用:public T[] ToArray();

五、堆栈可以用在哪里?

确实,我们平时好像都很少用它,那它能用在什么地方呢?

场景1:如上图,一个非常典型的应用是手机的页面操作,那是一个堆栈使用非常妙的地方。

我们在手机上点开App去看内容时,可以不断的点啊点,点了好多,需要用返回键返回到一个页面,这里就是出栈,这就是很好的堆栈使用场景。

场景2:堆仓库,可能放货的时候,受限于条件限制,先入仓的货,有可能会先出货。但这不是一个必然发生的例子。

场景3:比如拍照的时候,如果我们要连拍,此时有某一张拍的不好,要马上删除,那么删除掉的一般都是最上面那张,这也是堆栈的一个场景。

 

祝您用餐愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值