您现在的位置是:首页 > Javascript
当前栏目
双向链表[js实现] 【5】
2023-02-25 18:16:13 时间
indexOf(data)
用途: 根据data找到其位置。
思路: 定义current不断向下查找,用index记录索引值。对比current的data和我们传入的参数data,如果相等,把index返回。
编码
- 定义indexOf方法,参数是data
- current变量从头部开始(指向头部),下表也从0开始
- 当current不为空(为空就是一直找到了,tail后的元素null),如果current的data和我们传入的data相等,返回index索引
- 如果不相等,current向下寻找,index自增。
- 最后,如果找不到返回-1。
TwoWayLinkList.prototype.indexOf = function(data){
// 1.定义变量
var current = this.head
var index = 0
// 2.查找和data相同的节点。
while(current){
if(current.data==data){
return index
}else{
current=current.next;
index+=1
}
}
return -1
}
复制代码
测试一下
// 测试
var list = new TwoWayLinkList();
list.append('abc');
list.append('bce');
list.append('ghg');
console.log(list.indexOf('bce'));
update(position,element)
用途: 更改指定位置的元素为传进来的元素。
思路: 定义current变量,向下寻找,找到节点后那,把这个节点的data更改为我们传进来的。
编码
- 两个参数:position和新的数据
- 做下越界判断,position不能为负数,以及不能超过长度
- 寻找节点:只要我们记录当前current指向的索引index的值小于postion,就将
current = current.next
也就是向下寻找。index++<position
在与position比较的同时,还在递增。 - 最后将找到的节点的data赋值为新的newData,并返回true。
// update
TwoWayLinkList.prototype.update = function (position,newData){
// 越界判断
if(position<0 || position>=this.length) return false
// 寻找正确节点
var current = this.head
var index = 0
while(index++<position){
current = current.next
}
// 修改找到的节点信息
current.data = newData
return true
}
复制代码
测试一下
var list = new TwoWayLinkList();
list.append('abc');
list.append('bce');
list.append('ghg');
console.log(list.update(0,'sdsds'));
console.log(list.update(2,'ss'));
console.log(list.toString())
如下,list本来是 'abc bce ghg'
。
相关文章
- JDK中内嵌JS引擎介绍及使用
- 49195,npm最后的疯狂?盘点10款最有前途JavaScript构建工具
- 译文:5个增强Node.js应用程序增强功能
- 4个例子,吃透 JavaScript 实现的二叉搜索树 BST
- Vue中使用XML和JSON格式互转插件
- JDK中Jshell简单使用(JDK9版本以上或者JDK9版本)
- shiro中的JSP标签支持
- Java技术点-json转对象,对象转json
- SpringBoot+SpringDataJpa @Query之 JPQL使用书写模板(模糊查询and条件查询)
- Spring Boot中的Freemarker模版引擎引用css和js的正确姿势
- Node.js解压版的环境配置及相关常用命令
- JSP学习笔记(6)—— 自定义MVC框架
- JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍
- Jsp学习笔记(4)——分页查询
- APIJSON简单使用
- JSP学习笔记(3)——JSTL 标签库
- JSP学习笔记(1)——Jsp指令、动作元素和内置对象
- JavaScript ES6 Promise对象
- Web前端——JavaScript扩展补充
- Web前端——表单提交和Js添加选项