JS实现一个基于对象的链表
2017-04-10 16:02
489 查看
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
相关文章推荐
- js如何判断一个对象是array ,instanceof 是基于什么实现的呢?
- js如何判断一个对象是array ,instanceof 是基于什么实现的呢?
- 基于对象的JavaScript实现无刷新页面发送和获取数据Ajax.js
- 介绍一个款可以在javascript对象上实现观察者模式的类库-Watch.js
- 每日一个js实例5--通过面向对象实现运动
- 基于casperjs、resemble.js实现一个像素对比服务
- 需要求3个长方体的体积,写一个基于对象的程序,数据成员包括 length width height 要求用成员函数实现以下功能
- 基于innerHTML中的script广告实现代码[广告全部放在一个js里面] 原创
- JS +XML +Jquery 实现三级联动菜单,自己封装的一个对象方便使用
- 聊聊高并发(三十二)实现一个基于链表的无锁Set集合
- 用js实现一个map对象
- 封装一个方法实现js内置对象array的indexOf()方法
- 使用MVC中的HtmlHelper对象的ActionLink方法,实现一个Javascript:void(0)效果,去调用一个JS方法
- 第四章 基于对象的编程风格(如何实现一个class)
- 基于Node.js实现一个小小的爬虫
- 一个基于WEB的js时间控件的实现
- Html标签页的实现说明及结合JS基于对象特性的实现对比
- linux网络编程二十一:利用SIGALRM信号,实现一个简单的基于升序链表的定时器
- 聊聊高并发(三十二)实现一个基于链表的无锁Set集合
- 基于外部一个省市联动js框架,实现初始化特定的地址级联