算法基础入门-数据结构-链表(数据结构链表的经典算法)
也许是对于数据处理这个技能自己太匮乏了,也没学习过算法,算是梳理下自己的知识点还有所学吧。
1.链表简介:
多个元素组成的列表
元素储存不连续,用
next
指针连在一起。
1.1数组和链表的区别:
数组:增删非收尾元素时,往往需要移动元素
链表:增删非收尾元素,不需要移动元素,只需要更改
next
的指向即可
2.JS中的链表
JavaScript
中没有链表可以用
Object
模拟链表
2.1-JS模拟链表:
codePart:
//JS模拟链表 //声明多个对象 const Tmc = {val:"1号"}; const iverson = {val:"3号"}; const cart = {val:"15号"}; const kobe = {val:"24号"}; // 建立多个对象之间的联系 Tmc.next = iverson; iverson.next = cart; cart.next = kobe; 复制代码
如上图:
从
"1号麦迪"
——>"3号艾弗森"
——>"15号卡特"
——>"24号科比"
一层层的通过next
关联起来Tmc
为链表的头部
2.2-链表遍历:
codePart:
//继续上面代码 let NBA4Stars = Tmc; while(NBA4Stars){ console.log("NBA球星:",NBA4Stars.val); NBA4Stars = NBA4Stars.next; }; 复制代码
遍历链表步骤:
Step1
:声明一个变量,指向链表的头部。(let NBA4Starts = Tmc
)
Sept2
:不停的在while
循环体中重新设置新的自己
。(NBA4Starts = NBA4Stars.next
)
fn+f5
后打开控制台结果如下图:
2.3-链表插入:
现在想要在3号艾弗森
和15号卡特
之间插入一个12号贾.莫兰特
codePart:
const Morant = {val:"12号"}; iverson.next = Morant; Morant.next = cart; cart.next = kobe; 复制代码
插入操作后结果如下图:
2.4-链表删除:
原理和插入类型,也是改变next
指针的指向
删除上面2.3例子
中刚刚插入的12号莫兰特
iverson.next = cart;
作者:达摩会武术
链接:https://juejin.cn/post/7035500536279334943
伪原创工具 SEO网站优化 https://www.237it.com/