Stack是一种表示对象后进先出的集合,通常用于按接收的反向顺序存储信息,以便更好地实现顺序处理。Stack是通过循环数组来实现的,里面的对象总是从一端插入,而从另一端移出。Stack类的常用属性如表9-11所示。
表9-11 Stack类的常用属性
Stack类的常用方法如表9-12所示。
表9-12 Stack类的常用方法
Stack是通过循环来实现的,它的容量是Stack可以保存的元素数。Stack的默认初始容量值为10,当向Stack内添加新元素时,将根据需要而重新分配,实现自动增加容量。
实例38:使用Stack处理数组数据
下面将通过一个简单的实例来说明使用Stack的流程。本实例保存在“光盘:\daima\9”文件夹内,项目名为Stackshiyong。本实例的功能是向数组内添加数据,并将处理后的数组数据输出显示。实例文件的主要代码如下:
上述实例代码的设计流程如下。
1)通过using调用System.Collections类。
2)定义命名空间Stackshiyong和Test类。(www.xing528.com)
3)通过Stack集合类初始化nn,然后通过方法Push()向nn内添加8个元素。
4)通过while语句获取当前数组内的数据。
5)输出显示数组内的当前数据。
执行后将输出显示添加处理后的列表数据,如图9-14所示。
图9-14 实例执行结果
多学一招
Stack的特点是先进后出,后进先出,看下面的代码:
上述代码执行后,s1的值应该是2,s2的值应该是1。
Stack的容量是指Stack可以保存的元素数。在实现中Stack的默认初始容量为10;但此默认值可能在.NET Framework SDK的未来版本中更改。向Stack添加元素时,将通过重新分配内部数组,根据需要自动增大容量。可通过调用TrimExcess来减小容量。
如果Count小于堆栈的容量,则Push为O(1)操作。如果需要增加容量以容纳新元素,则Push为O(n)操作,其中n为Count。Pop为O(1)操作。Stack接受空引用(在Visual Basic中为Nothing)作为引用类型的有效值并且允许有重复的元素。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。