node有链表结构吗

node中有链表结构;链表是一种存储数据的结构,在文件可写流方法工作的时候,有些被写入的内容需要在缓存区中进行排队等待,而且遵循先进先出的规则,为了存储这些排队的数据,在新版node中就采用了链表的结构存储这些数据。

node有链表结构吗

本文操作环境:Windows10系统、nodejs 12.19.0版、Dell G3电脑。

node有链表结构

链表是一种存储数据的结构。

在文件可写流 write 方法工作的时候,有些被写入的内容需要在缓冲区中进行排队等待,而且遵循的是先进先出的规则。

为了存储这些排队的数据,在新版 Node 中就采用了链表的结构存储这些数据。

为什么不采用数组存储数据?

相对于链表结构,数组会有一些明显的缺点:

在多个语言下数组存储数据的长度具有上限

数组存在塌陷问题,在执行插入或删除元素的时候,有可能会移动其它元素的位置

在 JavaScript 中数组实际上是对象类型,在使用效率上会低一些

以上缺点只是相对于链表,实际使用中数组结构还是非常强大的。

链表

链表是由一系列**节点(node)**组合而成的集合。

每个节点都具有指向下一个节点引用的属性(next)。

将这些指向下一个节点的引用组合在一起就形成了一个链。

常见链表分类

双向链表:最常用,它的查询速度会更快一些

单向链表:本例讨论单向链表,它足够可写流的 write 方法使用

循环链表

单向链表结构

03.png

链表结构其实就是一个容器,里面存放着三个物件:head、null 以及中间的 node 节点。

在 node 节点身上有一个 next 属性,指向下一个 node 节点。

同时 node 节点身上还有一个 element 属性,用于存放当前 node 节点具体数据。

head 指向第一个 node 节点,然后按照 next 指向的顺序依次向下传递,一直到最后一个 node 节点,它的 next 指向 null。

默认情况下,链表是空的(head = null),里面没有 node 节点。

所谓双向链表就是在每个 node 节点身上多一个类似 prev 的属性,指向上一个节点。

而循环链表就是将头尾节点连接起来。

链表的作用

链表的出现主要还是用来存储数据。

这个功能和数组类似,因此链表常见的动作无非就是数据的增加、删除、修改、查询以及清空之类的操作。

这些都需要在创建链表结构的时候自行实现。

单向链表实现

掌握单向链表结构的实现,以在自定义文件可写流的时候实现存储需要排队写入的数据。

链表结构包含 node、head、null

默认链表是空的,也就是 head 指向 null

链表的操作类似数组,所以要有个属性记录节点的数量:size

每个节点必须有一个属性指向下一个数据:next

节点本身还要存储数据,使用一个属性存储:element

使用链表结构的行为一般有:增加、删除、修改、查询、清空

推荐学习:《nodejs视频教程》

以上就是node有链表结构吗的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2928139.html

(0)
上一篇 2025年3月11日 19:32:51
下一篇 2025年3月8日 02:29:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • nodelist是什么意思

    nodelist是节点列表的意思,是JavaScript中的一个对象,是一种类数组对象,用于保存一组有序的节点;nodelist对象类似HTMLCollection对象,并且该对象中的元素可以通过索引来访问。 本文操作环境:Windows1…

    2025年3月11日
    200
  • node中是否包含dom和bom

    node中没有包含dom和bom;bom是指浏览器对象模型,bom是指文档对象模型,而node中采用ecmascript进行编码,并且没有浏览器也没有文档,是JavaScript运行在后端的环境平台,因此node中没有包含dom和bom。 …

    2025年3月11日
    200
  • node-sass是做什么的

    “node-sass”是用于将“node.js”绑定到LibSass中的一个库;LibSass是流行样式表预处理器sass的C版本,“node-sass”允许用户将“.scss”文件本地编译为css,并且可以通过连接中间件自动编译。 本文操…

    2025年3月11日
    200
  • node.dll文件缺失怎么办

    解决方法:1、下载指定“node.dll”文件到本地,并且将下载的文件复制到“C:WindowsSystem32”目录或者“C:WindowsSysWOW64”目录中;2、按“Win+R”打开运行,并且输入“regsvr32 node.dl…

    2025年3月11日 编程技术
    200
  • node能降级吗

    node版本不能直接降级,但是可以将高版本卸载掉,利用nvm版本控制器重新安装较低版本的node进行降级。降级方法:1、利用“npm instlal -g n”全局安装n模块;2、利用“n rm 版本”卸载指定版本;3、安装nvm后利用“n…

    2025年3月11日
    200
  • socketio必须用在node中吗

    socketio必须用在node中;socketio是nodejs的一个库,利用nodejs的函数封装了一些功能,并且依赖于nodejs的一些api,所以只能在nodejs中使用,socketio也是在客户端和服务端之间建立的双向通信数据交…

    2025年3月11日
    200
  • node代码都是开源的吗

    node代码是开源的;“Node.js”是一个跨平台的开源运行环境,是基于“Chrome V8”引擎的JavaScript运行环境,用于在浏览器外部执行JavaScript代码,node也是基于“Chrome JavaScript”运行时构…

    2025年3月11日
    200
  • node.js是软件吗

    “node.js”不是软件,是一个JavaScript运行环境;“node.js”是一个基于“Chrome V8”引擎的JavaScript运行环境,是使用一个事件驱动、非阻塞式“I/O”模型,让JavaScript运行在服务器端的开发平台…

    2025年3月11日
    200
  • node的express有什么用

    node的express可以方便、快速的创建Web网站的服务器或API接口的服务器;express还可以为不同URL路径中使用不同HTTP动词的请求编写处理程序,集成了“视图”渲染引擎,以便通过将数据插入模板来生成响应等等。 本文操作环境:…

    2025年3月11日
    200
  • vue底层是用node写的吗

    vue底层不是用node写的,而是基于JavaScript语言开发的;vue是一套用于构建用户界面的渐进式JavaScript框架,能够更好的组织与简化Web开发,而node是一个基于“Chrome V8”引擎的JavaScript运行环境…

    2025年3月11日
    200

发表回复

登录后才能评论