「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
我个人觉得要想进大厂,就必须学习了解算法和数据结构,经历了多次面试之后,也知道了算法和数据结构的重要性,所以,我也打算从今天开始,进入学习,下载了一下电子书,边看书,边跟着书的例子来敲一下代码,下面就开始总结一下对算法和数据结构的学习吧。
第十一天:开始了解链表
数组这个最常用的数据结构非常方便。提供了一个便利的[]预发来访问其元素。然而,这种数据结构有一个缺点:从数组的起点或中间插入或移除项的成本很高。
相对于传统的数组
链表的一个好处在于:添加或移除元素的时候不需要移动其他元素。
但,它也有自己的缺点:就是访问链表中间的一个元素,则需要从起点开始迭代量表直到找到所需的元素
生活中也有链表的例子:就像奥运会的开场,里面有很多很多人表演,他们一拥而上,然而却能很快的找到自己的位置。其中有一个方法就是记住自己两边的是谁就行,不用记很多很多人。只要记住旁边的两个人,就都不会脱离队伍了。
另一个例子是寻宝游戏。你有一条线索,这条线索就是指向寻找下一条线索的地点的指针。 你顺着这条链接去下一个地点,得到另一条指向再下一处的线索。得到链表中间的线索的唯一办 法,就是从起点(第一条线索)顺着链表寻找。
链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个 元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。下图展示了一个链表的结构。
还有一个可能是用来说明链表的最流行的例子,那就是火车。一列火车是由一系列车厢(也 称车皮)组成的。每节车厢或车皮都相互连接。你很容易分离一节车皮,改变它的位置、添加或 移除它。下图演示了一列火车。每节车皮都是链表的元素,车皮间的连接就是指针。