C# 进阶 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

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#提供给我们的方法如下表:

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