JavaScript 链表定义与使用方法示例


Posted in Javascript onApril 28, 2020

本文实例讲述了JavaScript 链表定义与使用方法。分享给大家供大家参考,具体如下:

链表

一个 链表 是数据元素的线性集合, 元素的线性顺序不是由它们在内存中的物理位置给出的。 相反, 每个元素指向下一个元素。它是由一组节点组成的数据结构,这些节点一起,表示序列。

链表的一个缺点是访问时间是线性的(而且难以管道化)。

class Node {
 constructor(val) {
  this.val = val;
  this.next = null;
 }
}

显示链表

function display () {
  var currNode = this.head;
  while ( !(currNode.next == null) ){
    console.log( currNode.next.element );
    currNode = currNode.next;
  }
}

查找

function find ( item ) {
  var currNode = this.head;
  while ( currNode.element != item ){
    currNode = currNode.next;
  }
  return currNode;
}

插入

function insert ( newElement , item ) {
  var newNode = new Node( newElement );
  var currNode = this.find( item );
  newNode.next = currNode.next;
  currNode.next = newNode;
}

删除

function findPrev( item ) {
  var currNode = this.head;
  while ( !( currNode.next == null) && ( currNode.next.element != item )){
    currNode = currNode.next;
  }
  return currNode;
}

function remove ( item ) {
  var prevNode = this.findPrev( item );
  if( !( prevNode.next == null ) ){
    prevNode.next = prevNode.next.next;
  }
}

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JS window.opener返回父页面的应用
Oct 24 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
Nov 09 Javascript
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
防止Layui form表单重复提交的实现方法
Sep 10 Javascript
前端深入理解Typescript泛型概念
Mar 09 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 #Javascript
React生命周期原理与用法踩坑笔记
Apr 28 #Javascript
js最全的数组的降维5种办法(小结)
Apr 28 #Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 #Javascript
React中Ref 的使用方法详解
Apr 28 #Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 #Javascript
react PropTypes校验传递的值操作示例
Apr 28 #Javascript
You might like
十天学会php(2)
2006/10/09 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
jQuery 联动日历实现代码
2012/05/31 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
python实现从字典中删除元素的方法
2015/05/04 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python生成requirements.txt的两种方法
2019/09/18 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
Pycharm安装python库的方法
2020/11/24 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
金融保险专业求职信
2014/09/03 职场文书
英语通知范文
2015/04/22 职场文书