上一篇介绍了顺序栈,今天介绍的是栈的另一种形式。链栈可以看作是单链表的简化,链栈和单链表的结构是相同的,因为链栈只在一端进行操作,所以为了方便,栈顶被设在的链表的头部,并且没有头结点。
这里我画个图说明
上表展示的是单链表和链栈添加数据的方式,单链表的添加数据是往表尾进行放置,但是栈链添加数据的方式是直接添加到表头也就是栈顶,
链栈的实现
1、定义结构
/// <summary>
/// 栈的接口 栈的实现方式也分两种,顺序栈和链栈
/// </summary>
/// <typeparam name="T"></typeparam>
interface IStackDs<T>
{
int Count { get; }
int GetLength();
bool IsEnpty();
void Clear();
void Push(T item);//入栈
T Pop();//出栈(删除数据)
T Peek();//取栈顶元素
}
2.定义节点
节点就是链栈用来储存数据和引用的容器
/// <summary>
/// 链栈的节点
/// &