关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

C# 实现简单的栈

发布时间:2019-12-05 18:27:03

这是一个简单的仅支持入栈出栈的栈。

class1.cs

using System;

namespace MyStack

{

    class myStack

    {

        StackForm top;//栈顶元素

        public void Push(object data){//入栈

            //根据当前栈顶元素新构建一个新的栈顶,并将当前栈顶的NextItem指向原来的top

            top = new StackForm(top, data);

            //看到new习惯性的想着要写析构函数了....

        }

        public object Pop() { //出栈

            if (top == null)

                throw new InvalidOperationException();

            object result = top.data;

            top = top.nextItem;//重新指定栈顶

            return result;

        }

        //栈的数据格式,用链表来实现栈

        class  StackForm{

            public StackForm nextItem;//栈的下一个数据,自栈顶往下

            public object data;//栈顶数据

            public StackForm(StackForm sNext, object sData){

                this.nextItem = sNext;

                this.data = sData;

            }

        }

    }

}


一个简单的测试例子

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using MyStack;

namespace Stack

{

    class StackTest

    {

        static void Main() {

            myStack s = new myStack();

            s.Push(100);

            s.Push(200);

            s.Push("haha");

            s.Push("0.009");

            Console.WriteLine("当前栈顶元素为:{0}", s.Pop());

            Console.WriteLine("当前栈顶元素为:{0}", s.Pop());

            Console.WriteLine("当前栈顶元素为:{0}", s.Pop());

            Console.WriteLine("当前栈顶元素为:{0}", s.Pop());

            Console.ReadKey();

        }

    }

}

运行截图:

20141102215354007_副本.png


/template/Home/Zkeys/PC/Static