js创建单链表及倒序单链表
来源:互联网 发布:杜兰特2016西决数据 编辑:程序博客网 时间:2024/06/06 17:50
最近在准备校招,又拾起了数据结构……希望能早点找到心仪的工作嘻嘻
创建单链表首先要有节点,节点包含两部分,一部分存储数据,一部分存储指向下一个节点的链接。
节点可以用一个类来表示:
function Node(data){ this.data = data; //数据 this.next = null; //链接}
还需要一个链表类来表示链表的一些属性及方法:(包含一个属性,即头节点,标记链表的开始)
function List(){ this.head = new Node("head"); //创建一个头节点 this.addFirst = addFirst; //从头部插入一个节点,从而创建链表 this.display = display; //显示链表的数据 this.listReverse = listReverse; //倒序单链表}//从链表头部插入一个节点,newEle是新节点的数据function addFirst(newEle){ var newNode = new Node(newEle); //如果链表为空,则直接加在头节点后面 if(this.head.next === null){ this.head.next = newNode; }else{//如果链表不为空,则在头节点与第一个节点之间插入新节点 var first = this.head.next; newNode.next = first; this.head.next = newNode; }}//倒序单链表,将原链表中的节点从头部开始一个个删除并加到新链表中,最后返回新链表function listReverse(){ var reverseList = new List(); //创建一个新链表存放倒序后的链表 var currNode = this.head.next; //得到头节点后面的一个节点 while(currNode !== null){ //链表不为空 this.head.next = currNode.next; //删除原链表中的第一个节点 //将删除的节点加到新链表的头节点的后面 currNode.next = reverseList.head.next; reverseList.head.next = currNode; //将当前节点指向原链表中的第一个节点(即头节点的后面一个节点) currNode = this.head.next; } return reverseList; //返回新链表}//显示function display(){ var currNode = this.head; while(currNode.next !== null){ console.log(currNode.next.data); currNode = currNode.next; }}
测试:
//创建一个链表并向其中添加节点var list = new List();list.addFirst('fj');list.addFirst('luv');list.addFirst('wp');//显示list.display();
结果:
倒序链表:
list.display.call(list.listReverse());
结果:
阅读全文
0 0
- js创建单链表及倒序单链表
- 倒序单链表
- 单链表倒序
- 单链表倒序
- 单链表倒序
- 单链表倒序
- 单链表倒序
- 单链表的倒序
- 单链表倒序算法
- 单链表倒序输出
- 单链表的倒序
- 倒序打印一个单链表
- 倒序输出单链表
- 单链表反转与倒序
- 倒序打印单链表
- js迭代器之倒序访问迭代器及终止迭代器
- 倒序输出单链表的内容
- 单链表的创建,查找,删除,顺序打印,倒序打印(剑指offer)
- XGBoost简介
- 2017.9.14
- 633. Sum of Square Numbers 平方数之和 看一个数是否能够有两个平方数组成
- C++流对象
- mybatis generator(MyBatis的逆向工程)
- js创建单链表及倒序单链表
- 快速排序
- Linux操作系统基础
- 打开MySQL数据库远程访问的权限
- jDK7中的String.intern()方法
- HDU2089 不要62 数位dp
- PathMeasure的基本使用
- JDBC使用步骤
- (CodeForces