LinkList
简介:一个C#为我们封装好的类。本质上是一个可变类型的泛型双向链表。
声明:
LinkedList<int> linkedList = new LinkedList<int>();
LinkedList<string> list = new LinkedList<string>();
增:
linkedList.AddLast(1);
linkedList.AddLast(2);
linkedList.AddLast(3);
//在链表尾部添加元素
linkedList.AddLast(10);
//在链表头部添加元素
linkedList.AddFirst(50);
//在指定节点之前添加元素
//指定节点之后要得到一个节点
LinkedListNode<int> node1 = linkedList.First;
Console.WriteLine(node1.Value);
linkedList.AddAfter(node1, 15);
node1 = linkedList.Find(15);
Console.WriteLine(node1.Value);
//在指定节点之前添加元素
linkedList.AddBefore(node1, 12);
删:
//删头节点
linkedList.RemoveFirst();
//删尾节点
linkedList.RemoveLast();
//删指定节点,通过值删除,无法通过位置删除
linkedList.Remove(3);
//清空
//linkList.Clear();
查:
//查头节点
LinkedListNode<int> first = linkedList.First;
//查尾节点
LinkedListNode<int> last = linkedList.Last;
//查指定值的节点,不能是头尾节点的值,否则报错。
LinkedListNode<int> node = linkedList.Find(2);
Console.WriteLine(node.Value);
//判断是否存在
if (linkedList.Contains(1))
{
Console.WriteLine("链表存在1");
}
改:
//先得到节点,再改变其中的值。
Console.WriteLine(linkedList.First.Value);
linkedList.First.Value = 99;
Console.WriteLine(linkedList.First.Value);
遍历:
//foreach遍历
foreach (int item in linkedList)
{
Console.WriteLine(item);
}
//从头到尾遍历
Console.WriteLine("===============");
LinkedListNode<int> nowNode = linkedList.First;
while (nowNode != null)
{
Console.WriteLine(nowNode.Value);
nowNode = nowNode.Next;
}
//从尾到头遍历
Console.WriteLine("===============");
nowNode = linkedList.Last;
while (nowNode != null)
{
Console.WriteLine(nowNode.Value);
nowNode = nowNode.Previous;
}