【C#】LinkList

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;
}
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值