您的位置: 网站首页 > 程序开发 > C#程序设计 > 第5章 集合 > 【5.4 Stack类】

5.4 Stack类

 

5.4  Stack

与队列恰好相反,堆栈即Stack类的特点是先进后出。这一特点类似现实生活中的电梯。乘电梯时,先进电梯的人位于电梯中比较远离门的地方,而后进的人离门较近。因此先进的人后出,后进的人先出。堆栈就是这样一种集合,先进入堆栈的元素后出堆栈,后进堆栈的元素先出堆栈。

5.4.1  创建堆栈

堆栈的创建非常简单,只需使用Stack关键字即可。堆栈的创建与其他类型的集合一样,也可以指定其初始容量,同样,也可以不指定。下面通过一个实例演示堆栈的创建方法。

1.目的说明

创建一个Windows控制台应用程序,演示创建堆栈的方式。

2.实现步骤

1)创建一个名为StackCreate的控制台应用程序项目。

2)修改Program.cs文件中Main方法的内容如下:

static void Main(string[] args)

{

    Stack a = new Stack();

    Console.WriteLine(a.Count);

    Stack b = new Stack(5);

    Console.WriteLine(b.Count);

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图5-14所示。

5-14  运行结果

4.代码分析

可以看到,无论是否指定初始容量,创建的堆栈中元素个数都为0

5.4.2  元素入栈

同队列一样,堆栈中也有元素的入栈和出栈操作。本小结介绍元素的入栈方法,堆栈中元素的入栈方法名为Push。下面通过一个实例演示元素入栈的方法。

1.目的说明

创建一个Windows控制台应用程序,演示元素入栈的方法。

2.实现步骤

1)创建一个名为StackIn的控制台应用程序项目。

2)修改Program.cs文件中Main方法的内容如:

static void Main(string[] args)

{

    Stack a = new Stack();

    a.Push(1);

    a.Push(2);

    a.Push(3);

    a.Push(4);

    a.Push(5);

    Console.WriteLine("元素个数:");

    Console.WriteLine(a.Count);

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图5-15所示。

5-15  运行结果

4.代码分析

可以看到,依次将5个元素Push进堆栈中,堆栈的元素个数变为5个。

5.4.3  元素出栈

堆栈的特点就是后进先出或先进后出,本小结将通过实例演示堆栈这种特殊的性质。堆栈中元素出栈的方法是Pop。下面通过一个实例演示元素出栈的方法。

1.目的说明

创建一个Windows控制台应用程序,演示元素出栈的方式。

2.实现步骤

1)创建一个名为StackOut的控制台应用程序项目。

2)修改Program.cs文件中Main方法的内容如下:

static void Main(string[] args)

{

    Stack a = new Stack();

    a.Push(1);

    a.Push(2);

    a.Push(3);

    a.Push(4);

    a.Push(5);

    Console.WriteLine("元素个数:");

    Console.WriteLine(a.Count);

    for (int i = 0; i < 5; i++)

    {

        Console.WriteLine(a.Pop());

    }

    Console.WriteLine("元素个数:");

    Console.WriteLine(a.Count);

}

3.运行结果

Ctrl+F5组合键运行程序,运行结果如图5-16所示。

5-16  运行结果

4.代码分析

可以看到,依次将5个元素Push进堆栈中,堆栈的元素个数为5个。在for循环中使用Pop方法使元素出栈,最后一个入栈的元素5是第一个出栈的元素。元素全部出栈后,堆栈中元素的个数变为0