首页 理论教育 C#编程新手自学手册-Stack集合类

C#编程新手自学手册-Stack集合类

时间:2023-10-22 理论教育 版权反馈
【摘要】:Stack是一种表示对象后进先出的集合,通常用于按接收的反向顺序存储信息,以便更好地实现顺序处理。Stack是通过循环数组来实现的,里面的对象总是从一端插入,而从另一端移出。Stack类的常用属性如表9-11所示。实例38:使用Stack处理数组数据下面将通过一个简单的实例来说明使用Stack的流程。3)通过Stack集合类初始化nn,然后通过方法Push()向nn内添加8个元素。向Stack添加元素时,将通过重新分配内部数组,根据需要自动增大容量。

C#编程新手自学手册-Stack集合类

Stack是一种表示对象后进先出的集合,通常用于按接收的反向顺序存储信息,以便更好地实现顺序处理。Stack是通过循环数组来实现的,里面的对象总是从一端插入,而从另一端移出。Stack类的常用属性如表9-11所示。

表9-11 Stack类的常用属性

978-7-111-36370-5-Part02-253.jpg

Stack类的常用方法如表9-12所示。

表9-12 Stack类的常用方法

978-7-111-36370-5-Part02-254.jpg

Stack是通过循环来实现的,它的容量是Stack可以保存的元素数。Stack的默认初始容量值为10,当向Stack内添加新元素时,将根据需要而重新分配,实现自动增加容量。

实例38:使用Stack处理数组数据

下面将通过一个简单的实例来说明使用Stack的流程。本实例保存在“光盘:\daima\9”文件夹内,项目名为Stackshiyong。本实例的功能是向数组内添加数据,并将处理后的数组数据输出显示。实例文件的主要代码如下:

978-7-111-36370-5-Part02-255.jpg

978-7-111-36370-5-Part02-256.jpg

上述实例代码的设计流程如下。

1)通过using调用System.Collections类。

2)定义命名空间Stackshiyong和Test类。(www.xing528.com)

3)通过Stack集合类初始化nn,然后通过方法Push()向nn内添加8个元素。

4)通过while语句获取当前数组内的数据。

5)输出显示数组内的当前数据。

执行后将输出显示添加处理后的列表数据,如图9-14所示。

978-7-111-36370-5-Part02-257.jpg

图9-14 实例执行结果

多学一招

Stack的特点是先进后出,后进先出,看下面的代码:

978-7-111-36370-5-Part02-258.jpg

上述代码执行后,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)作为引用类型的有效值并且允许有重复的元素。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈