0
点赞
收藏
分享

微信扫一扫

百度最新旗舰大模型文心4.0 Turbo精调服务上线

洛茄 2024-08-27 阅读 29
c#java前端

 LinkedList

LinkedList是一个C#为我们封装好的类
它的本质是一个可变类型的泛型双向链表

申明

需要引用命名空间           using System.Collections.Generic


            LinkedList<int> linkedList = new LinkedList<int>();
            LinkedList<string> linkedList2 = new LinkedList<string>();
           

链表对象 需要掌握两个类

一个是链表本身 一个是链表节点类LinkedListNode

增删查改


            1.在链表尾部添加元素
            linkedList.AddLast(10);

            2.在链表头部添加元素
            linkedList.AddFirst(20);

            3.在某一个节点之后添加一个节点
              要指定节点 先得得到一个节点
            LinkedListNode<int> n = linkedList.Find(20);//通过值返回一个节点
            linkedList.AddAfter(n, 15);  //节点的后面加一个值为15的节点


            4.在某一个节点之前添加一个节点
              要指定节点 先得得到一个节点
            linkedList.AddBefore(n, 11);
 


            1.移除头节点
            linkedList.RemoveFirst();
            2.移除尾节点
            linkedList.RemoveLast();
            3.移除指定节点
            无法通过位置直接移除 通过存储的值来查找并移除  没有下标的概念
            linkedList.Remove(20);
            4.清空
            linkedList.Clear();

          

 查
            1.头节点
            LinkedListNode<int> first = linkedList.First;


            2.尾节点
            LinkedListNode<int> last = linkedList.Last;


            3.找到指定值的节点
              无法直接通过下标获取中间元素
              只有遍历查找指定位置元素

            LinkedListNode<int> node = linkedList.Find(3);
            Console.WriteLine(node.Value); // 这里控制台打印3


            node = linkedList.Find(5);


            4.判断是否存在
            if( linkedList.Contains(1) )
            {
                Console.WriteLine("链表中存在1");
            }
            


            要先得再改 得到节点 再改变其中的值
            linkedList.First.Value = 10;

遍历


            1.foreach遍历  直接得到值
            foreach (int item in linkedList)
            {
                Console.WriteLine(item);
            }

            2.通过节点遍历


              从头到尾
            LinkedListNode<int> nowNode = linkedList.First;
            while (nowNode != null)
            {
                Console.WriteLine(nowNode.Value);
                nowNode = nowNode.Next;
            }

            从尾到头
            nowNode = linkedList.Last;
            while (nowNode != null)
            {
                Console.WriteLine(nowNode.Value);
                nowNode = nowNode.Previous;
            }


using System.Collections;
using System.Linq;



class Program
{
public static void Main()
{
LinkedList<int> list = new LinkedList<int>();
Random rand = new Random();
for (int i = 0; i < 10; i++)
{
list.AddLast(rand.Next(0,101));
}
LinkedListNode<int> node = list.First;
while (node != null)
{
Console.WriteLine(node.Value);
node = node.Next;
}
Console.WriteLine("-----------------------------");
node = list.Last ;
while (node != null)
{
Console.WriteLine(node.Value);
node = node.Previous;
}
}
}
举报

相关推荐

0 条评论