带有推送和弹出示例的 C# 堆栈
什么是 C# 中的堆栈?
堆栈是一个特例集合,它代表了后进先出 (LIFO) 的概念。为了首先了解 LIFO,让我们举个例子。想象一摞书,每本书都叠放在一起。
在书籍的情况下,后进先出的概念意味着只有最上面的书才能从书堆中取出。不能从中间移除一本书,因为那样会干扰堆栈的设置。
因此,在 C# 中,堆栈也以相同的方式工作。元素被添加到堆栈中,一个在彼此的顶部。将元素添加到堆栈的过程称为推送操作。要从堆栈中删除元素,您还可以删除堆栈的最顶部元素。此操作称为 pop。
让我们更详细地看一下 Stack 集合可用的操作。
堆栈声明
堆栈是在堆栈数据类型的帮助下创建的。关键字“new”用于创建 Stack 的对象。然后将该对象分配给变量 st。
Stack st = new Stack()
向栈中添加元素
push 方法用于将元素添加到堆栈中。该语句的一般语法如下所示。
Stack.push(element)
从堆栈中移除元素
pop 方法用于从堆栈中删除一个元素。 pop 操作将返回堆栈的最顶部元素。该语句的一般语法如下所示
Stack.pop()
计数
此属性用于获取 Stack 中的项目数。以下是该语句的一般语法。
Stack.Count
包含
此方法用于查看堆栈中是否存在元素。以下是该语句的一般语法。如果元素存在,该语句将返回 true,否则将返回值 false。
Stack.Contains(element)
现在让我们看看这在代码级别上是如何工作的。下面提到的所有代码都将写入我们的控制台应用程序。代码将写入我们的 Program.cs 文件中。
在下面的程序中,我们将编写代码来看看我们如何使用上述方法。
示例 1:Stack.Push() 方法
在这个例子中,我们将看到
- 如何创建堆栈。
- 如何显示堆栈的元素,以及如何使用 Count 和 Contain 方法。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the stack " +st.Count); Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3)); Console.ReadKey(); } } }
代码说明:-
- 第一步用于声明堆栈。在这里,我们将“st”声明为一个变量来保存堆栈中的元素。
- 接下来,我们将 3 个元素添加到堆栈中。每个元素都是通过 Push 方法添加的。
- 现在由于堆栈元素不能像数组列表那样通过索引位置访问,我们需要使用不同的方法来显示堆栈的元素。 Object (obj) 是一个临时变量,它被声明用于保存堆栈的每个元素。然后我们使用 foreach 语句遍历堆栈的每个元素。对于每个堆栈元素,将值分配给 obj 变量。然后我们使用 Console.Writeline 命令将值显示到控制台。
- 我们正在使用 Count 属性 (st.count ) 以获取堆栈中的项目数。该属性将返回一个数字。然后我们将这个值显示到控制台。
- 然后我们使用 Contains 方法查看 3 的值是否存在于我们的堆栈中。这将返回一个真值或假值。然后我们将这个返回值显示到控制台。
如果上面的代码输入正确,程序运行起来会显示如下输出。
输出:
从输出中,我们可以看到堆栈的元素被显示出来了。另外,显示 True 的值表示堆栈上定义了 3 的值。
注意 :你已经注意到最后压入堆栈的元素首先显示。这是堆栈的最顶部元素。堆栈元素的计数也显示在输出中。
示例 2:Stack.Pop() 方法
现在让我们看看“删除”功能。我们将看到从堆栈中移除最顶层元素所需的代码。
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } }
代码说明:-
- 这里我们只是发出 pop 方法,用于从堆栈中删除一个元素。
如果上述代码输入正确并运行程序,会显示如下输出。
输出:
我们可以看到元素 3 被从栈中移除了。
总结
- 堆栈基于后进先出的概念。将元素添加到堆栈中的操作称为推入操作。将元素移入堆栈的操作称为弹出操作。
C语言