使用C#进行了泛型栈的实现,内部以List<>作为储存器;
class CStack<T>
{
int p_Index;
List<T> list;
//构造方法
public CStack()
{
list = new List<T>();
p_Index = -1;
}
public int Count
{
get { return list.Count; }
}
//入栈
public void Push(T item)
{
list.Add(item);
p_Index++;
}
//出栈
public T Pop()
{
if (list.Count>0)
{
T top;
top = list[list.Count - 1];
list.RemoveAt(list.Count - 1);
p_Index--;
return top;
}
else
{
return default(T);
}
}
//Peek
public T Top()
{
if (list.Count > 0)
{
return list[list.Count - 1];
}
else
{
return default(T);
}
}
public void Clear()
{
list.Clear();
p_Index = -1;
}
}