Stack
栈(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#提供给我们的方法如下表:
序号 | 方法名 & 描述 |
---|---|
1 | public virtual void Clear(); 从 Stack 中移除所有的元素。 |
2 | public virtual bool Contains( object obj ); 判断某个元素是否在 Stack 中。 |
3 | public virtual object Peek(); 返回在 Stack 的顶部的对象,但不移除它。 |
4 | public virtual object Pop(); 移除并返回在 Stack 的顶部的对象。 |
5 | public virtual void Push( object obj ); 向 Stack 的顶部添加一个对象。 |
6 | 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 + " ");
}
}
}
}