JavaScript 双向链表操作实例分析【创建、增加、查
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要介绍了JavaScript 双向链表操作,结合实例形式分析了JavaScript双向链表的创建、增加、查找、删除等相关操作技巧,需要的朋友可以参考下
本文实例讲述了JavaScript 双向链表操作。分享给大家供大家参考,具体如下
一个 双向链表(doubly linked list) 是由一组称为节点的顺序链接记录组成的链接数据结构。每个节点包含两个字段,称为链接,它们是对节点序列中上一个节点和下一个节点的引用
开始节点和结束节点的上一个链接和下一个链接分别指向某种终止节点,通常是前哨节点或null,以方便遍历列表。如果只有一个前哨节点,则列表通过前哨节点循环链接。它可以被概念化为两个由相同数据项组成的单链表,但顺序相反。
class DNode { constructor(val) { this.val = val; this.prev = null; this.next = null; } }
增加节点
function add(el) { var currNode = this.head; while (currNode.next != null) { currNode = currNode.next; } var newNode = new DNode(el); newNode.next = currNode.next; currNode.next = newNode; }
查找
function find(el) { var currNode = this.head; while (currNode && currNode.el != el) { currNode = currNode.next; } return currNode; }
插入
function (newEl, oldEl) { var newNode = new DNode(newEl); var currNode = this.find(oldEl); if (currNode) { newNode.next = currNode.next; newNode.prev = currNode; currNode.next = newNode; } else { throw new Error('未找到指定要插入节点位置对应的值!') } }
展示
// 顺序 function () { var currNode = this.head.next; while (currNode) { console.log(currNode.el); currNode = currNode.next; } } // 逆序 function () { var currNode = this.head; currNode = this.findLast(); while (currNode.prev != null) { console(currNode.el); currNode = currNode.prev; } }
删除
function (el) { var currNode = this.find(el); if (currNode && currNode.next != null) { currNode.prev.next = currNode.next; currNode.next.prev = currNode.prev; currNode.next = null; currNode.previous = null; } else { throw new Error('找不到要删除对应的节点'); } }
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
上一篇:uni-app如何页面传参数的几种方法总结
下一篇:JS 创建对象的模式实例小结
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指