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 相关文章推荐
判断iframe是否加载完成的完美方法
Jan 07 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
javascript操作字符串的原生方法
Dec 22 Javascript
javascript强制点击广告的方法
Feb 06 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
Jan 10 Javascript
angular json对象push到数组中的方法
Feb 27 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 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
织梦模板标记简介
2007/03/11 PHP
PHP的基本常识小结
2013/07/05 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
用Python编写web API的教程
2015/04/30 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
python简易远程控制单线程版
2018/06/20 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
python 自定义对象的打印方法
2019/01/12 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
警察群众路线整改措施
2014/09/26 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript