namespace Stack
{
/// <summary>
/// 链表形式的 栈
/// </summary>
internal class LinkStack
{
class Node
{
public object data;
public Node next;
}
Node linkedList;
public LinkStack()
{
Initial();
}
/// <summary>
/// 初始化栈
/// </summary>
public void Initial()
{
linkedList = new Node();
linkedList.next = null;
}
/// <summary>
/// 判断是否栈空
/// </summary>
/// <returns></returns>
public Boolean Empty()
{
if (linkedList.next == null)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 入栈
/// </summary>
/// <param name="obj"></param>
public void Push(object obj)
{
Node p = new Node();
p.data = obj;
p.next = linkedList.next;
linkedList.next = p;
}
/// <summary>
/// 出栈
/// </summary>
/// <returns></returns>
public object Pop()
{
Node top=linkedList.next;
if (top != null)
{
linkedList.next = top.next;
return top.data;
}
else
{
return null;
}
}
/// <summary>
/// 取栈顶元素
/// </summary>
/// <returns></returns>
public object Top()
{
Node top = linkedList.next;
if (top != null)
{
return top.data;
}
else
{
return null;
}
}
}
}
转载于:https://www.cnblogs.com/tinyjian/p/6550711.html