美文网首页
链表—什么是链表

链表—什么是链表

作者: 尤奇勤_三月 | 来源:发表于2019-07-15 19:47 被阅读0次
冰冻非一日之寒

书本概念

链表是一种将数据存储到“结点”中的数据结构,需要存储多少个数据,就生成多少个“结点”,把这些“结点”用指针挂接起来。

为了表示每个数据元素ai与其直接后继元素ai+1之间的逻辑关系,对数据元素ai来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置),这两部分信息组成数据元素ai的存储映像,称为结点。

结点中包括两个域,其中存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称为指针。

慕课笔记

前面说过,对于链表数据是存储在结点中的。结点包括两部分,数据e和指针next,

链表—什么是链表

说了这么多,举个例子吧。下图可以看做是一个链表,链表中共有三个结点,其中的1、2、3是数据e本身,而且箭头是next指针。链表不可能是无穷无尽的,对于最后一个结点,其next指针指向null,即指向了空结点。

链表—什么是链表

可以看出,链表不像静态数组那样,一下子new出来一片空间,而是需要多少,就生成多少个空间(结点),只需要把他们挂接起来。也不需要考虑空间是否大了或者小了。

同时,这也是链表的缺点:失去了随机访问的能力。这是因为:

在底层机制上,数组开辟的空间在内存里是连续分布的,直接去找这个索引对应的偏移,直接计算出相应元素的内存地址,用O(1)的复杂度把这个元素取出;而链表是靠next一层一层连接的,在计算机的底层,每一个结点所在的内存位置是不同的(每new一个结点,计算机就会随机分配一个地址),只能靠next一点一点的去找到我们想要的元素

链表和数组对比:

数组最好用于索引有寓意的情况。例如,score[2],代表学号为2的,学生的成绩;数组支持快速查询。

链表不适合用于索引有语意的情况;链表是动态的。

何时使用二者,就要看我们的需求是适合动态的数据结构,还是适合静态的数据结构。

简单的编写下链表这个数据结构

链表—什么是链表

相关文章

  • 链表—什么是链表

    冰冻非一日之寒 书本概念 链表是一种将数据存储到“结点”中的数据结构,需要存储多少个数据,就生成多少个“结点”,把...

  • 大话数据结构之链表(二)

    上一篇《链表概念篇》中, 主要给小伙伴们讲述了什么是链表? 为什么链表是线性结构? 链表的操作是什么? 链表操作的...

  • 单链表

    链表链表链表~~就是用链子锁在一起的表。ps(以上为胡扯的话)...先来科普下什么叫单链表~单向链表(单链表)是一...

  • 数据结构-链表

    链表是日常工作中十分常见且常用的一种数据结构,那么什么是链表,链表有那些结构呢? 什么是链表 链表是一种线性的数据...

  • 一起探秘,不可不知双向链表底层原理

    双向链表与数据结构 什么是LinkedList LinkList是一个双向链表(双链表);它是链表的一种,也是最常...

  • 04单向循环链表实现总结

    一、说说什么是单向循环链表? 人狠话不多. 上图. 单向循环链表就是这个样子!单向循环链表.png 与单向链表区别...

  • 写给给女朋友的算法入门 - 链表

    什么是链表 数据结构里,除了数组之外,最常用的应该就是链表(linked list)了。 那么什么是链表呢,如其名...

  • 用Java写单向链表

    数据结构—单向链表 为了巩固自己的基础知识,这次就用 Java 来写一个单向链表。问:什么是单向链表?首先链表是数...

  • 源码阅读 - LinkedList

    0. 什么是LinkedList 双向链表 非线程安全 1. 实现的本质 链表,Node first指向链表...

  • js数组和链表

    链表 什么是链表 链表是一种上一个元素的引用指向下一个元素的存储结构,链表通过指针来连接元素与元素; 分为单向链表...

网友评论

      本文标题:链表—什么是链表

      本文链接:https://www.haomeiwen.com/subject/gzilnqtx.html