JavaScript双向链表定义与使用方法

本文主要介绍了javascript数据结构之双向链表定义与使用方法,简单介绍了双向链表的原理,并结合实例形式分析了双向链表的定义与使用方法,需要的朋友可以参考下,希望能帮助到大家。

双向链表和普通链表的区别在于,在链表中,一个节点只有链向下一个节点的链接,而在双向链表中,链接是双向的:一个链向下一个元素,另一个链向前一个元素。

双向链表提供了两种迭代列表的方法:从头到尾,或者反过来。我们也可以访问一个特定节点的下一个或前一个元素。在单向链表中,如果迭代列表时错过了要找的元素,就需要回到列表起点,重新开始迭代。这是双向链表的一个优点。

function DoubleLink(){  var length=0;//链表长度  var head=null;//头结点的引用  var tail=null;//尾节点的引用  function Node(e){    this.element=e;    this.next=null;    this.previous=null;  }  this.insertAt=function(position,e){//在任意位置添加节点    if(position>=0&&position-1&&position=length)return null;    }  }  this.isEmpty=function(){//判断链表是否为空    return length==0;  }  this.mylength=function(){//链表长度    return length;  }  this.print1=function(){//从头到尾打印链表    var current=head;    while(current){      console.log(current.element);      current=current.next;    }  }  this.print2=function(){//从尾到头打印链表    var current=tail;    while(current){      console.log(current.element);      current=current.previous;    }  }  this.getHead=function(){//获取头节点    return head;  }  this.getTail=function(){//获取尾节点    return tail;  }}var link=new DoubleLink();//实例化一个对象link.insertAt(0,'d');link.insertAt(1,'e');link.insertAt(2,'f');link.insertAt(3,'g');link.insertAt(4,'h');link.insertAt(5,'i');link.insertAt(6,'j');link.insertAt(7,'k');link.removeAt(7);link.removeAt(0);link.print1();//efghijlink.print2();//jihgfeconsole.log(link.getHead());//econsole.log(link.getTail());//jconsole.log(link.indexOf('f'));//1

登录后复制

运行结果:

JavaScript双向链表定义与使用方法

立即学习“Java免费学习笔记(深入)”;

相关推荐:

实例详解PHP基于双向链表与排序操作实现的会员排名功能

JavaScript双向链表和双向循环链表的实现

PHP小教程之实现双向链表_PHP教程

以上就是JavaScript双向链表定义与使用方法的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 18:54:50
下一篇 2025年2月26日 04:21:03

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

相关推荐

  • js通过Date对象实现倒计时动画效果实例分享

    本文主要为大家详细介绍了js通过date对象实现倒计时动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 js通过Date对象实现倒计时效果,具体内容如下 nbsp;html>    倒计时动画   p{ …

    编程技术 2025年3月8日
    200
  • Javascript中双等号隐性转换机制分析

    本文主要和大家详细介绍了javascript中双等号(==)隐性转换机制,非常不错,具有参考借鉴价值,需要的朋友参考下吧,希望能帮助到大家。 在Javascript中判断相等关系有双等号(==)和三等号(===)两种。其中双等号(==)是值…

    编程技术 2025年3月8日
    200
  • JS和CSS网页加载中的动画效果实现方法

    本文主要为大家详细介绍了js+css实现网页加载中的动画效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 本文实例为大家分享了JS实现网页加载中效果的具体代码,供大家参考,具体内容如下 需要材料: 一张loadin…

    2025年3月8日
    200
  • AngularJS的环境搭建初学教程

    本文主要介绍了初学者angularjs的环境搭建过程,在文章给大家提到了angular-cli的特性,大家一起看看吧,希望能帮助到大家。 AngularJS是什么? AngularJS是一个开源Web应用程序框架。它最初是由MISKO He…

    编程技术 2025年3月8日
    200
  • JavaScript中Require调用js实例讲解

    本文主要为大家带来一篇javascript中require调用js的实例分享。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 在我最初开始写 JavaScript 函数时,通常是这样的: f…

    编程技术 2025年3月8日
    200
  • 详解JavaScript自执行函数和jQuery扩展方法

    本文主要为大家详细介绍了javascript自执行函数和jquery扩展方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 我们通常将JS代码写在一个单独的JS文件中,然后在页面中引入该文件。但是,有时候引入后会碰到…

    编程技术 2025年3月8日
    200
  • 三种JavaScript模拟实现封装的方式及写法区别分享

     继承是使用一个子类继承另一个父类,那么子类可以自动拥有父类中的所有属性和方法,这个过程叫做继承!  js中有很多实现继承的方法,今天我给大家介绍其中的三种吧。下面通过本文来了解下js模拟实现封装的三种方法,需要的朋友参考下吧,希望能帮助到…

    编程技术 2025年3月8日
    200
  • javascript浏览器用户代理检测脚本方法详解

    本文主要为大家带来一篇javascript浏览器用户代理检测脚本实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Wind…

    编程技术 2025年3月8日
    200
  • javascript中的typeof和类型判断详解

    本文主要为大家带来一篇基于javascript中的typeof和类型判断(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 typeof ECMAScript 有 5 种原始类型(pr…

    编程技术 2025年3月8日
    200
  • AngularJs用户登录交互及验证、阻止FQ处理详解

    本文主要为大家详细介绍了angularjs用户登录问题处理,包括交互及验证、阻止fq处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 1. 静态页面搭建及ng的form表单验证实现:               登…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论