栈(Stack)是一个后进先出的对象集合。就像往箩筐里装东西和取东西。
Stack的声明
声明栈要用关键字Stack。其语法格式与类的声明相同。
Stack s=new Stack(); //声明s
Stack的属性
Stack常用的属性有Count,其中:
Count是获取Stack中的元素个数。
Stack s=new Stack();
s.Push(12); //向s中增加数据.
s.Push(13);
int count=s.Count; //count这时的值为2.
Stack的方法
当向栈中添加一项,称为推入元素,当向栈中移除一项时,称为弹出元素。因此C#提供给我们的方法如下表:
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();
复制 Stack 到一个新的数组中。
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: "); // W G M A
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());//取出栈顶数据H,但不删除
Console.WriteLine("Current stack: "); // H V W G M A
foreach (char c in st)
{
Console.Write(c + " ");
}
Console.WriteLine();
Console.WriteLine("Removing values ");
st.Pop(); //移除数据
st.Pop();
st.Pop();
Console.WriteLine("Current stack: "); //G M A
foreach (char c in st)
{
Console.Write(c + " ");
}
}
}
}
转载于:https://blog.51cto.com/xingcheng/1766016