美文网首页
js实现链表(很有意思)

js实现链表(很有意思)

作者: 何家一枝花 | 来源:发表于2021-07-08 11:44 被阅读0次

链表有单向链表、双向链表和循环链表,此篇文章只讲解单向链表,另外两种会在下一篇文章中补充,要真正理解和使用链表的话,建议三种链表结构都了解一下。

  平时我们使用最多的数据结构应该是数组,很多东西都可以用数组来轻松实现,但在某些编程语言中,数组的长度是预先设定好的,想要额外添加元素或者删除元素是一件比较困难的事。那么使用链表的话恰恰就解决了这些问题,对于链表来说删除或添加一个元素是非常方便的,除了数据的随机访问(可以实现但是比较麻烦,比如可以通过添加和操作索引值来实现),它几乎可以用在任何可以使用一维数组的情况中。

链表的定义

  链表是由一组节点组成的集合。每个节点都使用一个对象的引用指向它的后继。指向另一

个节点的引用叫做链。

一般的链表都会额外添加一个头节点(作为辅助)和尾节点,例如下面这种样子

  数组元素靠它们的位置进行引用,链表元素则是靠相互之间的关系进行引用。在上图中,我们说 bread 跟在 milk 后面,而不说 bread 是链表中的第二个元素。遍历链表,就是跟着链接,从链表的首元素一直走到尾元(但这不包含链表的头节点,头节点常常用来作为链表的接入点)。上图中另外一个值得注意的地方是,链表的尾元素指向一个 null 节点。

  插入新元素:

  向单向链表中插入一个节点,只需要修改它前面的节点(前驱),使其指向新加入的节点,而新加入的节点则指向原来前驱指向的节点。上图演示了如何在 eggs 后加入 cookies。

  删除链表中已有元素:

  从链表中删除一个元素也很简单。只需要将待删除元素的前驱节点指向待删除元素的后继节点。上图展示了从单向链表中删除Bacon。

  除了插入和删除,链表还有其他一些操作,后面将给出讲解。

设计一个基于对象的链表

  我们需要设计两个类,Node 类用来表示节点, LinkedList 类提供插入节点、删除节点、显示列表元素的方法,以及其他一些辅助方法。

相关文章

  • js实现链表(很有意思)

    链表有单向链表、双向链表和循环链表,此篇文章只讲解单向链表,另外两种会在下一篇文章中补充,要真正理解和使用链表的话...

  • JS简单实现一个链表

    JS简单实现一个链表

  • 链表 --js实现

    1.链表的概念 列表存储的是有序元素集合,不同于数组,链表的中的元素在内存中并不是连续放置的。每个元素是由一个存储...

  • js实现链表

    function LinkedList() { var Node = function (element)...

  • js 链表实现

    一、节点的实现 我都知道链表就是用有向线段把多个节点按顺序串起来,要实现链表首先要实现节点,而每一个节点,有一个自...

  • js实现链表

    设计一个基于对象的链表 我们需要设计两个类,Node类用来表示结点,LinkedList类提供插入结点、删除结点、...

  • JS 实现链表

    Node 为创建节点的构造函数;LinkedList 为链表操作函数的构造函数。对链表的操作包括:插入节点、移除节...

  • markdown js实现链表list

    先学会js语法,再用js写好链表的代码可以实现链表的插入删除等操作,然后将写好的代码改为js格式的文件放入node...

  • 链表的JS实现

    参考链接:栈的JS实现

  • js单链表实现

    定义 ​ 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的...

网友评论

      本文标题:js实现链表(很有意思)

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