Stack(栈)是一种常用的数据结构,它具有后进先出(LIFO)的特性。在C#中,我们可以使用数组或者链表来实现Stack。本篇文章将使用链表来实现Stack数据结构。
首先,我们需要定义一个链表节点类Node,它包含当前节点的数据值Value和指向下一个节点的引用Next:
class Node<T>
{
public T Value { get; private set; }
public Node<T> Next { get; set; }
public Node(T value)
{
Value = value;
}
}
接着,我们定义一个Stack类,包含一个头节点Head和一个元素数量Count。在入栈Push操作中,我们新建一个节点,并将其Next引用指向原头节点,再将Head指向新节点即可。在出栈Pop操作中,我们将Head指向下一个节点,然后返回被弹出的节点的数据值。同时,我们需要注意当栈为空时不能进行Pop操作。
class Stack<T>
{
private Node<T> Head { get; set; }
private int Count { get; set; }
public void Push(T value)
{
Nod