宝哥软件园

JS双向链表实现与使用方法示例(增加一个以前的属性实现)

编辑:宝哥软件园 来源:互联网 时间:2021-08-27

本文实例讲述了射流研究…双向链表实现与使用方法。分享给大家供大家参考,具体如下:

前面一篇讲述了《JS基于对象的链表实现与使用方法》 ,这里的双向链表通过增加一个以前的属性实现。

单链表中若需要查找某一个元素时,必须从第一个元素开始进行查找,而双向链表除开头节点和最后一个节点外每个节点中储存有两个指针,这连个指针分别指向前一个节点的地址和后一个节点的地址,这样无论通过那个节点都能够寻找到其他的节点。

原理如下图所示:

示例代码:

/*双向链表* */函数节点(元素){ this。元素=元素;this . next=null this . previous=null/双向链表在这里需要增加一个以前的属性}函数LList(){ this。head=新节点(“head”);this . find=find this . insert=insert this . display=显示;this.remove=移除;这个。查找最后一个;这个。反证词=反证词;//将链表反转}函数exprovese(){ var current node=this。头部;curr节点=这个。find last();var nodestr=while(!(CurrNode。previous==null)){ nodestr=' Currnode。元素;当前节点=当前节点。以前的;} console.log('将链表反转后:' nodestr);}函数find last(){ var current node=this。头部;while(!(CurrNode。next==null)){ CurrNode=CurrNode。接下来;}返回currNode}函数remove(item){ var CurrNode=this。find(item);if(!(CurrNode。next==null)){ CurrNode。以前的。next=CurrNode。接下来;电流节点。下一个。上一个=当前节点。以前的;curr node . next=NullCurrNode . previous=null } }//不再需要查找上一个/函数查找上一个(项目){ var currennode=this。头部;while(!(CurrNode。next==null(CurrNode)。下一个。元素!=item)){ curr node=curr node。接下来;}返回currennode } */function display(){ var currennode=this。头部;var nodestr=while(!(CurrNode。next==null)){ nodestr=' CurrNode。下一个。元素;当前节点=当前节点。接下来;}控制台。日志(nodestr);}函数find(item){ var CurrNode=this。头部;while (currNode.element!=item){ CurrNode=CurrNode。接下来;}返回currNode}函数插入(newElement,item){ var new Node=new Node(新元素);无功电流=这个。find(item);新节点。下一个=当前。接下来;newNode.previous=current//双向链表在这里需要设置新节点以前的属性current . next=new node } var city=new LList();城市。插入('康威','头');城市。插入(' russelville ',' Conway ');cities.insert('卡莱尔','拉塞尔维尔');城市。插入('阿尔玛','卡莱尔');城市。显示();//康威拉塞尔维尔卡莱尔阿拉木图。移除('卡莱尔');城市。显示();//康威拉塞尔维尔阿尔马蒂斯。de preeseverse();//阿尔玛拉塞尔维尔康威这里使用在线HTML/CSS/JavaScript代码运行工具:http://工具。JB 51。net/code/HTMljsrun测试上述代码,可得如下运行结果:

更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《JavaScript数据结构与算法技巧总结》 、 《JavaScript数学运算用法总结》 、 《JavaScript排序算法总结》 、 《JavaScript遍历算法与技巧总结》 、 《JavaScript查找算法技巧总结》 及《JavaScript错误与调试技巧总结》

希望本文所述对大家Java脚本语言程序设计有所帮助。

更多资讯
游戏推荐
更多+