堆栈(Stack)代表了一个后进先出的对象集合。需要对各项进行后进先出的访问时,则使用堆栈。在列表中添加一项,称为推入元素,从列表中移除一项时,称为弹出元素
栈的入栈操作
栈的出栈操作
堆栈的基本原理图
- Count:获取 Stack 中包含的元素个数
从 Stack 中移除所有的元素
public virtual void Clear();
判断某个元素是否在 Stack 中
public virtual bool Contains( object obj );
返回在 Stack 的顶部的对象,但不移除它
public virtual object Peek();
移除并返回在 Stack 的顶部的对象
public virtual object Pop();
向 Stack 的顶部添加一个对象
public virtual void Push( object obj );
复制 Stack 到一个新的数组中
public virtual object[] ToArray();
using System;
using System.Collections;
namespace CollectionsApplication
{
class Program
{
static void Main(string[] args)
{
Stack st = new Stack();
st.Push('A');
st.Push('M');
st.Push('G');
st.Push('W');
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.WriteLine();
st.Push('V');
st.Push('H');
Console.WriteLine("The next poppable value in stack: {0}",
st.Peek());
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.WriteLine();
Console.WriteLine("Removing values ");
st.Pop();
st.Pop();
st.Pop();
Console.WriteLine("Current stack: ");
foreach (char c in st)
{
Console.Write(c + " ");
}
}
}
}
/* Output
Current stack:
W G M A
The next poppable value in stack: H
Current stack:
H V W G M A
Removing values
Current stack:
G M A
*/
ps:
Stack 类: https://learn.microsoft.com/zh-cn/dotnet/api/system.collections.stack?view=net-8.0