zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    javascript之理解参数按值传递
    javascript之模仿jQuery实现框架雏形
    javascript之正则表达式学习笔记
    python常用算法了解
    爬虫_小结04
    爬虫_小结03
    爬虫_小结02
    爬虫_小结01
    IO 模型
    数据库,前端和框架须知
  • 原文地址:https://www.cnblogs.com/fangexuxiehuihuang/p/11621450.html
Copyright © 2011-2022 走看看