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 相关文章推荐
javascript事件模型代码
Jul 01 Javascript
javascript 图片上一张下一张链接效果代码
Mar 12 Javascript
JQuery获取浏览器窗口内容部分高度的代码
Feb 24 Javascript
利用Keydown事件阻止用户输入实现代码
Mar 11 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
AngularJS 表单验证手机号的实例(非必填)
Nov 12 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
Vue组件间数据传递的方式(3种)
Jul 13 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 Javascript
一百多行代码实现react拖拽hooks
Mar 23 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处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
php实现的http请求封装示例
2016/11/08 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
python对象与json相互转换的方法
2019/05/07 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
python 如何对logging日志封装
2020/12/02 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
先进班级集体事迹材料
2014/01/30 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
超强台风观后感
2015/06/09 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers