链表基础

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();

C#泛型集合之——链表的更多相关文章

  1. C#非泛型集合和泛型集合的超级详解

    C# 泛型集合之非泛型集合类与泛型集合类的对应: ArrayList对应List HashTable对应Dictionary Queue对应Queue Stack对应Stack SortedList对 ...

  2. .NET中的泛型集合总结

    最近对集合相关的命名空间比较感兴趣,以前也就用下List<T>, Dictionary<Tkey, TValue>之类,总之,比较小白.点开N多博客,MSDN,StackOve ...

  3. C# DataSet装换为泛型集合

    1.DataSet装换为泛型集合(注意T实体的属性其字段类型与dataset字段类型一一对应) #region DataSet装换为泛型集合 /// <summary> /// 利用反射和 ...

  4. Linq操作非泛型集合

    我们都知道,Linq能查询泛型集合,确切的说是:LINQ能实现查询泛型对象或者实现了IEnumerable.但是,很遗憾的是诸如ArrayList这样的非泛型集合并没有实现IEnumerable.那咋 ...

  5. c#利用泛型集合,为自己偷偷懒。

    有人说"越懒"的程序员进步的越快!其实还挺有道理.亲身体验,从刚出来工作到现在,自己变"懒"了许多,但感觉写出来的代码确有了不少提升.刚开始啊,同样的代码,赋值 ...

  6. 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合

    1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...

  7. GsonUtils.getGson().fromJson() 转泛型集合

    List<QiTaFree> qiTaFreeList = GsonUtils.getGson().fromJson(exhiMain.getQiTaFressJson(), new Ty ...

  8. 快速入门系列--CLR--03泛型集合

    .NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧.因而简述下.NET并发时线程安全特性,其详情请见MSDN. 普通集合都不支持多重并发写操作 部分支持单线 ...

  9. 类库,委托,as.is,var,泛型集合

    类库: 就是让别人调用你写的方法,并且不让别人看到你是怎么实现的.(比如说一些核心文件) 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. ...

随机推荐

  1. 【BigData】Java基础_冒泡排序

    1.实现需求 根据已经存在的数组,使用冒泡排序将数组中的元素排序后输出. 2.代码 package cn.test.logan.day02; /** * 冒泡排序在数组上的实现 * @author Q ...

  2. LSF 作业系统常用命令

    LSF(Load Sharing Facility)是一个被广泛使用的作业管理系统,具有高吞吐.配置灵活的优点.通过 LSF 集中监控和调度,可以充分利用计算机的CPU.内存.磁盘等资源. bqueu ...

  3. 暑假gosh计划

    [要参与的事项]: 1.大创 2.CTF 3.ACM 4.自己的巴拉巴拉巴 [基本目标]: 1.大创 学完一本Java入门教材 学习Material Design,了解典型交互,进行ui初步设计 2. ...

  4. 冰多多团队-第十次Scrum例会

    冰多多团队-alpha第十次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 牛雅哲 修复了Iatdemo语音接口的bug,整个demo pipeline跑通 为词库设计更多的扩展模块和扩展 ...

  5. [技术博客]使用adb命令获取app(游戏)错误和警告日志

    adb命令的使用 直接在命令行中输入: adb logcat *:W 注意:这句命令的意思是显示所有优先级大于等于警告(Warning)的日志,查找崩溃问题一般用: adb logcat *:E 注意 ...

  6. enable device: BAR 0 [mem 0x00000000-0x003fffff] not claimed

    /******************************************************************************* * enable device: BA ...

  7. 如何分析redis中的慢查询

    慢查询的两个参数配置 慢查询只记录命令执行时间,并不包括命令排队和网络传输时间.因此客户端执行命令的时间会大于命令实际执行时间.因为命令执行排队机制,慢查询会导致其他命令级联阻塞,因此当客户端出现请求 ...

  8. C# 动态执行JS

    有时候需要,在程序中灵活的嵌入自定义的计算逻辑,使用C#加载JS脚本形式可以实现: // 添加引用 using Microsoft.JScript; string jsStr = "var ...

  9. Ubuntu16.04安装Supervisor

    安装 sudo apt-get install supervisor 启动,否则会报 unix:///tmp/supervisor.sock no such file service supervis ...

  10. bat文件重命名指定路径下文件

    ren "E:\产品\Planning\C1-Planning11\C1-Planning11\target\123" 456 此命令是将文件123重命名为456 注意:456是文 ...