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
——————————————————————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/c实现简单的栈/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!