JS基于对象的链表实现与使用方法示例


Posted in Javascript onJanuary 31, 2019

本文实例讲述了JS基于对象的链表实现与使用方法。分享给大家供大家参考,具体如下:

链表是一种在物理内存上不连续的数据结构。原理如下图所示:

JS基于对象的链表实现与使用方法示例

示例代码:

/*JS实现一个基于对象的链表*/
function Node(element){
  this.element = element;//节点存储的元素
  this.next = null;//节点指向的下一个节点,这里先设置为空
}
function LList(){
  this.head = new Node("head");//生成一个头节点
  this.find = find;//在链表中找到某个节点
  this.insert = insert;//在链表中某个元素后面插入某个节点元素
  this.display = display;//在将链表中的节点元素显示出来
  this.findPrevious = findPrevious;//找到某个节点的上一个节点
  this.remove = remove;//删除某个节点
}
function remove(item) {
  var prevNode = this.findPrevious(item);
  if (!(prevNode.next == null)) {
    prevNode.next = prevNode.next.next;
  }
}
function findPrevious(item) {
  var currNode = this.head;
  while (!(currNode.next == null) &&
    (currNode.next.element != item)) {
    currNode = currNode.next;
  }
  return currNode;
}
function display() {
  var currNode = this.head;
  var nodestr = "";
  while (!(currNode.next == null)) {
    nodestr +=" "+currNode.next.element;
    currNode = currNode.next;
  }
  console.log(nodestr);
}
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 current = this.find(item);
  newNode.next = current.next;
  current.next = newNode;
}
/*测试例子*/
var num = new LList();
num.insert("a1","head");
num.insert("b1","a1");
num.insert("c1","b1");
num.display();// a1 b1 c1
num.remove("b1");
num.display();// a1 c1

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS基于对象的链表实现与使用方法示例

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

Javascript 相关文章推荐
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
Apr 07 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
Jun 05 Javascript
javascript 10进制和62进制的相互转换
Jul 31 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
jsonp跨域获取数据的基础教程
Jul 01 Javascript
微信小程序自定义轮播图
Nov 04 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 Javascript
vue props default Array或是Object的正确写法说明
Jul 30 Javascript
JS栈stack类的实现与使用方法示例
Jan 31 #Javascript
JQuery中queue方法用法示例
Jan 31 #jQuery
JavaScript两种计时器的实例讲解
Jan 31 #Javascript
JavaScript对JSON数组简单排序操作示例
Jan 31 #Javascript
实例讲解v-if和v-show的区别
Jan 31 #Javascript
详解使用angular框架离线你的应用(pwa指南)
Jan 31 #Javascript
Angular PWA使用的Demo示例
Jan 31 #Javascript
You might like
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
php分页函数示例代码分享
2014/02/24 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
详解 Python 与文件对象共事的实例
2017/09/11 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
用python爬取租房网站信息的代码
2018/12/14 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
手写一个python迭代器过程详解
2019/08/27 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
机修工岗位职责
2013/11/24 职场文书
计算机专业自荐信
2014/05/24 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
大学生个人求职信例文
2014/07/07 职场文书
要账委托书范本
2014/09/15 职场文书
超市采购员岗位职责
2015/04/07 职场文书
2015年售票员工作总结
2015/04/29 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书