文章目录
#定义:
链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点的(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。
#结点:
private class Node
{
Item item;
Node next;
};
Item的类型为Item,是链表中存的数据,next的类型为next,是该结点指向的下一个结点索引。
#链表结构:
Node first = new Node();
Node second = new Node();
Node third = new Node();
first.item = "to";
second.item = "be";
third.item = "or";
first.next = second;
second.next = third;
#在表头插入节点
首先创建结点索引,oldfirst,将其指向原first的结点,然后将first指向新结点
//保存指向链表的链接
Node oldfirst = first;
//创建新的首结点
first = new Node();
//设置新结点中的实例变量
first.item = "not";
first.next = oldfirst;
保存指向链表的链接
创建新的首结点
设置新结点中的实例变量
#从表头删除节点
将first指向first.next即可,原头结点会被自动回收。
first = first.next;
#在表尾插入节点
首先需要获取尾结点,单链表从头结点开始遍历,直到找到尾结点(链表缺点之一)。
//保存指向尾节点的链接
Node oldlast = last;
//创建新的尾节点
last = new Node();
last.item = "not";
//将尾链接指向新结点
oldlast.next = last;
保存指向尾节点的链接
创建新的尾节点
将尾链接指向新结点
#遍历
for(Node x = first; x != null; x = x.next)
{
//处理
}