首页 >> js开发 >> js代码JavaScript 链表定义与使用方法示例
js代码JavaScript 链表定义与使用方法示例
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
本文实例讲述了JavaScript 链表定义与使用方法。分享给大家供大家参考,具体如下:链表链表链表一个 链表 是数据元素的线性集合, 元素的线性顺序不是由它们在内存中的物理位置给出的。 相反, 每个元素指向下一个元素。它是由一组节点组成的数据结构,这些节点一起,表示序列。链表链表的一个缺点是访问时间是线性的(而且难以管道化)。链表的一个缺点是访问时间是线性的(而且难以管道化)。
class Node {
constructor(val) {
this.val = val;
this.next = null;
}
}
class Node {
constructor(val) {
this.val = val;
this.next = null;
}
}
显示链表显示链表显示链表
function display () {
var currNode = this.head;
while ( !(currNode.next == null) ){
console.log( currNode.next.element );
currNode = currNode.next;
}
}
function display () {
var currNode = this.head;
while ( !(currNode.next == null) ){
console.log( currNode.next.element );
currNode = currNode.next;
}
}
查找查找查找
function find ( item ) {
var currNode = this.head;
while ( currNode.element != item ){
currNode = currNode.next;
}
return currNode;
}
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 currNode = this.find( item );
newNode.next = currNode.next;
currNode.next = newNode;
}
function insert ( newElement , item ) {
var newNode = new Node( newElement );
var currNode = this.find( item );
newNode.next = currNode.next;
currNode.next = newNode;
}
删除删除删除
function findPrev( item ) {
var currNode = this.head;
while ( !( currNode.next == null) && ( currNode.next.element != item )){
currNode = currNode.next;
}
return currNode;
}
function remove ( item ) {
var prevNode = this.findPrev( item );
if( !( prevNode.next == null ) ){
prevNode.next = prevNode.next.next;
}
}
function findPrev( item ) {
var currNode = this.head;
while ( !( currNode.next == null) && ( currNode.next.element != item )){
currNode = currNode.next;
}
return currNode;
}
function remove ( item ) {
var prevNode = this.findPrev( item );
if( !( prevNode.next == null ) ){
prevNode.next = prevNode.next.next;
}
}
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools./code/HtmlJsRun测试上述代码运行效果。在线HTML/CSS/JavaScript代码运行工具在线HTML/CSS/JavaScript代码运行工具http://tools./code/HtmlJsRun关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》JavaScript数学运算用法总结JavaScript数据结构与算法技巧总结JavaScript数组操作技巧总结JavaScript排序算法总结JavaScript遍历算法与技巧总结JavaScript查找算法技巧总结JavaScript错误与调试技巧总结希望本文所述对大家JavaScript程序设计有所帮助。
class Node {
constructor(val) {
this.val = val;
this.next = null;
}
}
class Node {
constructor(val) {
this.val = val;
this.next = null;
}
}
显示链表显示链表显示链表
function display () {
var currNode = this.head;
while ( !(currNode.next == null) ){
console.log( currNode.next.element );
currNode = currNode.next;
}
}
function display () {
var currNode = this.head;
while ( !(currNode.next == null) ){
console.log( currNode.next.element );
currNode = currNode.next;
}
}
查找查找查找
function find ( item ) {
var currNode = this.head;
while ( currNode.element != item ){
currNode = currNode.next;
}
return currNode;
}
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 currNode = this.find( item );
newNode.next = currNode.next;
currNode.next = newNode;
}
function insert ( newElement , item ) {
var newNode = new Node( newElement );
var currNode = this.find( item );
newNode.next = currNode.next;
currNode.next = newNode;
}
删除删除删除
function findPrev( item ) {
var currNode = this.head;
while ( !( currNode.next == null) && ( currNode.next.element != item )){
currNode = currNode.next;
}
return currNode;
}
function remove ( item ) {
var prevNode = this.findPrev( item );
if( !( prevNode.next == null ) ){
prevNode.next = prevNode.next.next;
}
}
function findPrev( item ) {
var currNode = this.head;
while ( !( currNode.next == null) && ( currNode.next.element != item )){
currNode = currNode.next;
}
return currNode;
}
function remove ( item ) {
var prevNode = this.findPrev( item );
if( !( prevNode.next == null ) ){
prevNode.next = prevNode.next.next;
}
}
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools./code/HtmlJsRun测试上述代码运行效果。在线HTML/CSS/JavaScript代码运行工具在线HTML/CSS/JavaScript代码运行工具http://tools./code/HtmlJsRun关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》JavaScript数学运算用法总结JavaScript数据结构与算法技巧总结JavaScript数组操作技巧总结JavaScript排序算法总结JavaScript遍历算法与技巧总结JavaScript查找算法技巧总结JavaScript错误与调试技巧总结希望本文所述对大家JavaScript程序设计有所帮助。
相关文章:
- js浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法js大全
- jsvue移动端弹起蒙层滑动禁止底部滑动操作js大全
- js解决vue单页面 回退页面 keeplive 缓存问题js大全
- jsES2021系列之空值合并运算符 '??'js大全
- js解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题js大全
- js代码全面解析JavaScript Module模式
- js在vue中封装的弹窗组件使用队列模式实现方法js大全
- JavaScript详解node.js 事件循环
- JavaScriptjs实现滑动滑块验证登录
- jsvuex中store存储store.commit和store.dispatch的用法js大全