JavaScript 数据结构单链表与循环链表实例分享解析

GS 80 2024-10-10

本文主要介绍了javascript数据结构之单链表、循环链表,详细的介绍了javascript如何实现单链表、循环链表,有兴趣的可以了解一下,希望能帮助到大家。

进入正题,关于链表的数据结构知识,这里简单介绍下:

链表是一种物理存储单元上非线性、非连续性的数据结构(它在数据逻辑上是线性的),它的每个节点由两个域组成:数据域和指针域。数据域中存储实际数据,指针域则存储着指针信息,指向链表中的下一个元素或者上一个元素。正是由于指针的存在,链表的存储在物理单元是非连续性的。

链表的优点和缺点同样明显。和线性表相比,链表在添加和删除节点上的效率更高,因为其只需要修改指针信息即可完成操作,而不像线性表(数组)那样需要移动元素。同样的,链表的长度在理论上也是无限的(在存储器容量范围内),并可以动态变化长度,相比线性表优势很大。 相应的,由于线性表无法随机访问节点,只能通过指针顺着链表进行遍历查询来访问,故其访问数据元素的效率比较低。 

下面是JS部分

这里面封装了的常用方法及描述:

方法描述
append(element)  向链表尾部添加结点element
insert(position,element) 向位置position处插入结点element
removeAt(position) 按照索引值position删除结点
remove(element) 搜索并删除给定结点element
remove() 删除链表中最后一个结点
indexOf(element)查找并返回给定结点element的索引值
isEmpty() 判断链表是否为空
size() 获取链表长度
toString() 转换为字符串输出
getHead()获取头结点
getTail() 获取尾结点

对于各常用方法的算法描述在这里就不写了,相信大家都可以轻易读懂并理解,毕竟都是非常基础的知识了。

单链表:

图片.png

图片.png

图片.png

循环链表:在单链表的基础上,将尾节点的指针指向头结点,就构成了一个循环链表。环形链表从任意一个节点开始,都可以遍历整个链表。

图片.png

图片.png

图片.png

使用方法:

图片.png

在类外部扩充方法:

图片.png

以上就是JavaScript 数据结构单链表与循环链表实例分享解析的详细内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序组件 marquee 实例全面分享解读
下一篇:微信小程序 modal 组件弹出对话框实例详细分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~