C#初学者教程系列16:堆栈Stack
本文环境为Visual Studio 2019。
我们常常忙于开发,而忘记了有队列、堆栈、集合等这回事。
是
本文是C#初学者简单教程,这是第16篇。感谢观看,记得关注我,后续还有更多教程文章,谢谢。 本文环境为Visual Studio 2019。 我们常常忙于开发,而忘记了有队列、堆栈、集合等这回事。 是的,数据结构当我们在用C#做开发时,时常我们不去关心,为啥?那是因为类库已经给你设计好了,只要学它的api,会用就行。这就是我们习以为常后,反而不知道堆栈的存在的原因。就像神国用操作系统,允许您倒(故意错字)版使用,这样你就不会自己去研究操作系统,慢慢的可以磨灭你们的生机,永久依赖于它的操作系统。 一、类比 在C#中的队列,对应的是Queue这个类,集合对应的是就较多了,比如List。 链表对应啥呢?没错,LinkedList就是。 那么堆栈对应啥呢?嗯,是的,在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:比如拍照的时候,如果我们要连拍,此时有某一张拍的不好,要马上删除,那么删除掉的一般都是最上面那张,这也是堆栈的一个场景。 祝您用餐愉快。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |