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
——————————————————————————————————————————————————————————————————