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中的undefined,null,"",0和false
Mar 08 Javascript
基于jQuery图片平滑连续滚动插件
Apr 27 Javascript
基于jquery的模态div层弹出效果
Aug 21 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
Google 地图API Map()构造器详解
Aug 06 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
Vue源码解析之数组变异的实现
Dec 04 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
Sep 28 Javascript
antd配置config-overrides.js文件的操作
Oct 31 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读取msn上的用户信息类
2008/12/05 PHP
php生成扇形比例图实例
2013/11/06 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python通过future处理并发问题
2017/10/17 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
介绍一下linux文件系统分配策略
2012/11/17 面试题
幼儿园家长反馈意见
2015/06/03 职场文书
小学生家长意见
2015/06/03 职场文书
Python+Appium新手教程
2021/04/17 Python
python 自动刷新网页的两种方法
2021/04/20 Python