在线性表的链式存储结构中,为了便于插入和删除算法的实现,每个链表都带有一个头指针(用Head表示),并通过头指针唯一标识该链表,从头指针所指的头结点出发,沿着结点的指针域可以访问到每个结点.
下面是单项链表的代码实现:
/// <summary>
/// 单项链表.
/// </summary>
public class LinkedList
{
private int count;//记录元素的个数.
private Node head;//头指针.
public void Add(object value)
{
Node newNode = new Node(value);
if (head == null)
{
head = newNode;//如果链表为空则把第一个添加过来的值,直接作为头指针.
}
else //添加到链表结尾.
{
GetByIndex(count - 1).next = newNode;
}
count++;
}
/// <summary>
/// 获得结点
/// </summary>
private Node GetByIndex(int index)
{
if (index < 0 || index >= this.count)
{
throw new ArgumentOutOfRangeException("