C#实现简单的栈


C实现简单的栈

最近开始学习C#,以用来学习Unity3D.

最近应该会更新关于C#学习法方面的一些心得和例子。

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

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();



        
        }
        
    }
}

运行截图:



写C#程序让我找回了当年学Java的那种感觉。



——————————————————————————————————————————————————————————————————

//写的错误或者不好的地方请多多指导,可以在下面留言或者点击左上方邮件地址给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。

转载请注明出处:http://blog.csdn.net/qq844352155

author:天下无双

Email:coderguang@gmail.com

2014-11-2

于GDUT

——————————————————————————————————————————————————————————————————




发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注