与队列恰好相反,堆栈即Stack类的特点是先进后出。这一特点类似现实生活中的电梯。乘电梯时,先进电梯的人位于电梯中比较远离门的地方,而后进的人离门较近。因此先进的人后出,后进的人先出。堆栈就是这样一种集合,先进入堆栈的元素后出堆栈,后进堆栈的元素先出堆栈。
堆栈的创建非常简单,只需使用Stack关键字即可。堆栈的创建与其他类型的集合一样,也可以指定其初始容量,同样,也可以不指定。下面通过一个实例演示堆栈的创建方法。
创建一个Windows控制台应用程序,演示创建堆栈的方式。
(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);
}
按Ctrl+F5组合键运行程序,运行结果如图5-14所示。
图5-14 运行结果
可以看到,无论是否指定初始容量,创建的堆栈中元素个数都为0。
同队列一样,堆栈中也有元素的入栈和出栈操作。本小结介绍元素的入栈方法,堆栈中元素的入栈方法名为Push。下面通过一个实例演示元素入栈的方法。
创建一个Windows控制台应用程序,演示元素入栈的方法。
(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);
}
按Ctrl+F5组合键运行程序,运行结果如图5-15所示。
图5-15 运行结果
可以看到,依次将5个元素Push进堆栈中,堆栈的元素个数变为5个。
堆栈的特点就是后进先出或先进后出,本小结将通过实例演示堆栈这种特殊的性质。堆栈中元素出栈的方法是Pop。下面通过一个实例演示元素出栈的方法。
创建一个Windows控制台应用程序,演示元素出栈的方式。
(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);
}
按Ctrl+F5组合键运行程序,运行结果如图5-16所示。
图5-16 运行结果
可以看到,依次将5个元素Push进堆栈中,堆栈的元素个数为5个。在for循环中使用Pop方法使元素出栈,最后一个入栈的元素5是第一个出栈的元素。元素全部出栈后,堆栈中元素的个数变为0。