我们要知道一点:单链表是由无数个结点组成的。
故单链表实现必须有两个类:结点类(存数据域和指针域) 链表类(统筹每个结点)
结点类:
class listnode<T>
{
public T value;//数据域
public listnode<T> nextnode;//指针域
public listnode(T value)//构造函数给结点赋值
{
this.value = value;
}
}
链表类:
class linkedlist<T>
{
public listnode<T> head;//头指针(就是头指针,存放头结点的地址)
public listnode<T> last;//尾指针(尾指针的意思:last中存放的是最后一个结点-之后的结点的地址)
public void add(T value)//封装添加节点并赋值函数
{
listnode<T> node = new listnode<T>(value);//创建头节点并赋值//结点类型
if (head == null)//若头指针为空:空链表
{
head = node;//可以这么理解:head的地址是node
last = null;//尾指针的地址是空,表示后面没有结点了
Console.WriteLine("