C#内的LinkedList类是内部封装好的泛型双向链表类,提供了常用的增删改查与遍历方式。

using System;
using System.Collections.Generic;

namespace lesson10
{
    class Program
    {
        static void Main(string[] args)
        {
            LinkedList<int> linkedList = new LinkedList<int>();
            #region 增删查改
            //增加
            //1.链表尾添加元素
            linkedList.AddLast(1);
            linkedList.AddLast(2);
            linkedList.AddLast(3);
            //2.链表头添加元素
            linkedList.AddFirst(4);
            linkedList.AddFirst(5);
            linkedList.AddFirst(6);
            //3.在某结点后添加一个结点(先找再加)
            LinkedListNode<int> n1 = linkedList.Find(4);
            linkedList.AddAfter(n1, 999);
            //4.在某结点前添加一个结点(先找再加)
            linkedList.AddBefore(n1, 666);

            //删除
            //1.移除头结点
            linkedList.RemoveFirst();
            //2.移除尾结点
            linkedList.RemoveLast();
            //3.移除指定结点
            linkedList.Remove(3);
            //4.清空
            linkedList.Clear();

            //**********************************
            linkedList.AddLast(1);
            linkedList.AddLast(2);
            linkedList.AddLast(3);
            linkedList.AddFirst(4);
            linkedList.AddFirst(5);
            linkedList.AddFirst(6);
            //***********************************

            //查找
            //1.查找头结点
            LinkedListNode<int> head  = linkedList.First;
            //2.查找尾结点
            LinkedListNode<int> tail = linkedList.Last;
            //3.找到指定结点
            LinkedListNode<int> node = linkedList.Find(3);
            //4.判断是否包含
            if (linkedList.Contains(4)) 
            {
                Console.WriteLine(true);
            }

            //修改(先查再改)
            linkedList.First.Value = 888;

            #endregion
            #region 遍历
            //1.foreach遍历
            foreach (int item in linkedList)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("**************************************");
            //2.从头到尾通过结点遍历
            LinkedListNode<int> current = linkedList.First;
            while (current != null) 
            {
                Console.WriteLine(current.Value);
                current = current.Next;
            }
            Console.WriteLine("**************************************");
            //3.从尾到头通过结点遍历
            LinkedListNode<int> current2 = linkedList.Last;
            while (current2 != null)
            {
                Console.WriteLine(current2.Value);
                current2 = current2.Previous;
            }
            #endregion
        }
    }
}

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐