C#中Stack<T>类的使用及部分成员函数的源码分析

本文深入探讨C#中的Stack<T>类,介绍其在数据结构中的作用,以及如何在实际编程中使用。同时,文章对Stack<T>的部分关键成员函数进行了源码分析,帮助读者理解其内部实现机制。
摘要由CSDN通过智能技术生成
Stack<T>类

Stack<T> 作为数组来实现。 Stack<T> 的容量是 Stack<T> 可以包含的元素数。 当向 Stack<T> 中添加元素时,将通过重新分配内部数组来根据需要自动增大容量。 可通过调用 TrimExcess 来减少容量。 如果 Count 小于堆栈的容量,则 Push 的运算复杂度是 O(1)。 如果需要增加容量以容纳新元素,则 Push 的运算复杂度成为 O(n),其中 n 为 Count。 Pop 的运算复杂度为 O(1)。 Stack<T> 接受 null 作为引用类型的有效值并且允许有重复的元素。

命名控件:System.Collections.Generic

程序集:System(在System.dll中)

语法:public class Stack<T>:IEnumerable<T>, ICollection, IEnumerable

List<T>实现了IList<T>、 ICollection<T>、IEnumerable<T>、IList、ICollection、IEnumerable接口

因此可以看出与List1T>相比:

Stack<T>没有继承ICollection<T>接口,因为这个接口定义的Add()和Remove()方法不能用于栈;

Stack<T>没有继承IList<T>接口,所以不能使用索引器访问栈。

所以队列只允许在栈的顶部添加元素,删除元素。

常用的Stack<T>类的成员:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇渡江694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值