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 相关文章推荐
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
jQuery实用函数用法总结
Aug 29 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
TypeScript中的方法重载详解
Apr 12 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
JS实现公告上线滚动效果
Jan 10 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
PHPLog php 程序调试追踪工具
2009/09/09 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
requireJS使用指南
2016/04/27 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
JavaScript实现购物车基本功能
2017/07/21 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
什么是规则表达式
2012/05/03 面试题
失业者真诚求职信范文
2013/12/25 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS