C#中的链表结构在程序中十分常见,用处很广。
链表结构中,每个节点由值部分和指针部分组成,值部分即存储的数据,指针指向下一个节点,从而使得每个节点能够连接起来,值和指针就像骨骼和关节一样。
一、节点结构
自定义链表,首先定义出节点的结构,用类表示为:
public Class Node<T>{ //不确定value的值类型所以用泛型
public T value; //值
public Node<T> point; //指针
}
二、自定义List链表
定义完节点,下面开始构造List链表结构。自定义链表中属性有:元素个数、索引器,方法有添加、插入、遍历。其中遍历方法需要实现IEnumerable接口。
思路
改变链表中节点的指向。
1.添加方法Add(T value)
(1)定义全局变量first和last表示链表中的根节点和最后一个节点;
(2)判断last是否为空,为空证明链表中没有元素,将需要插入的value值赋予给first,然后让last指向first;
(3)当last不为空时,新建节点node并赋予value值,用来表示插入的节点。将当前最后一个节点last指针指向node,然后node节点即成为最后一个节点
(4)元素个数+1