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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
JQuery 获得绝对,相对位置的坐标方法
Feb 09 Javascript
jQuery Selector选择器小结
May 06 Javascript
jquery中对于批量deferred的处理方法
Jan 22 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
React创建组件的三种方式及其区别
Jan 12 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
浅谈在Vue-cli里基于axios封装复用请求
Nov 06 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
May 10 Javascript
Vuex的API文档说明详解
Feb 05 Javascript
Vue数据双向绑定原理实例解析
May 15 Javascript
React Fragment介绍与使用详解
Nov 11 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开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
对Python中画图时候的线类型详解
2019/07/07 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
python解包概念及实例
2021/02/17 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
应届毕业生就业自荐信
2013/10/26 职场文书
物业经理自我鉴定
2014/03/03 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
货车司机岗位职责
2014/03/18 职场文书
街道社区活动报告
2015/02/05 职场文书
研究生导师推荐信
2015/03/25 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Python turtle编写简单的球类小游戏
2022/03/31 Python