• C#泛型集合之——链表


    链表基础

    1.概述:C#中泛型集合中的链表—LinkedList 是一个双向链表,其结点为LinkedListNode 结构 其中,结点结构包含:Next,Previous,Value三部分。且结点中值可以重复。

    链表的插删要快于Link Link实质上是顺序型,可以用foreach。而链表不行!

    2.链表的创建及初始化:

    (1) LinkedList<类型> 链表名 = new LinkedList<类型> ();

    (2) LinkedList<类型> 链表名 = new LinkedList<类型> (数组名);

    注意:LinkedList<类型> 链表名 = new LinkedList<类型> () {值} ; 这样是错误的,因为LinkedList中元素应该是结点LinkedListNode 而不能是单纯的值!

    1. 链表结点的创建及初始化:

    LinkedListNode<类型> 结点名 = new LinkedListNode<类型> (值);

    //初建结点必须赋值,类型为只读型,不能修改前后的指向。

    4.链表的基本操作:

    (1)    取链表的首位元素:链表名.First 链表名.Last //返回为结点型

    (2)    链表结点的前后移动:结点.Next 结点.Previous  //返回为结点型

    (3)    统计链表的长度:链表名.Count();  //()圆括号有没有都行

       链表名.(LongCount()) //必须有圆括号

    (4)    添加结点:

    链表名.AddFirst(); //圆括号中为值或者是结点,添加在链表头

    链表名.AddLast(); //参数同上,添加在链表尾

    链表名.AddBefore(参数一:添加位置,为结点类型,参数二:添加元素,值或者是结点类型);

    链表名.AddAfter(参数一:添加位置,为结点类型,参数二:添加元素,值或者是结点类型);

    (5)    删除结点:

    链表名.Remove(); //括号中值为链表中值,若该值存在于多个结点中,则只删除第一个。括号中值也可以为结点类型,但是要注意这个结点必须是从原链表中获取的,否则运行会出错

    链表名.RemoveFirst(); //删除首结点,首结点会自动后移

    链表名.RemoveLast(); //删除尾结点,尾结点会自动前移

    (6)    查找结点值:返回值为布尔类型

     链表名.Contain(); 括号内为结点的值,不能是结点

    (7)    查找结点:返回值为结点类型  

    链表名.Find(); 括号内为结点的值,不能是结点。若有多个结点的值相同,只返回第一个

    链表名.FindLast(); 与Find 相同只是从后往前找

    (8)    在链表中,要想判断两个结点是否为同一个结点不能用==号,要使用 结点.Equals(结点);

    (9)    链表清空: 链表名.Clear();

  • 相关阅读:
    win7连接l2tp报错789“L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误”
    Django内置Admin
    python-django(day19)
    常用模块-day06
    生成器、内置函数、模块与包的使用、正则表达式-day05
    Python 函数对象、 名称空间与作用域、闭包、装饰器、迭代器
    python字符编码、文件处理、函数
    2018-06-19——考试周肝完的我又回来了
    2018-06-11——pthyon类型整理
    2018-06-10——python基础整理
  • 原文地址:https://www.cnblogs.com/fangexuxiehuihuang/p/11621450.html
Copyright © 2020-2023  润新知