------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
今天学习啦C#中的泛型,自己动手写了一个泛型的Stack,可以装任何类型哦~~
源码如下:
using System;
namespace MyStack
{
class Program
{
//保存数据用的节点
class Node<T>
{
public T d;
public Node(T d){this.d=d;}
public Node<T> next;
}
class MyStack<T>
{
int sum=0;
Node<T> data=null;
public void Push(T d)
{
Node<T> newNode=new Node<T>(d);
newNode.next=data;
data=newNode;
++sum;
}
public T Pop()
{
if (IsEmpty())return default(T);
T result=data.d;
this.data=data.next;
--sum;
return result;
}
public bool IsEmpty(){return data==null;}
}
public static void Main(string[] args)
{
MyStack<int> stackint =new MyStack<int>();
Console.WriteLine("运用栈的特性,反序一个队列。");
Console.Write("原数据:");
//入栈
for (int i=0;i<20;++i)
{
Console.Write("{0},",i);
stackint.Push(i);
}
//换行
Console.WriteLine();
Console.Write("反序后的数据:");
//出栈,并打印出来
while (!stackint.IsEmpty())
{
Console.Write("{0},",stackint.Pop());
}
// TODO: Implement Functionality Here
Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}