玩转数据结构从入门到进阶笔记(二 链表)

链表Linked List:
上一篇中的动态数组,栈和两种队列底层依然依托于静态数组,其中动态是对于该数据结构的使用者来说的,依靠
resize方法解决动态扩容和缩容的问题。而链表是真正的动态数据结构,同时也是最简单的数据结构,是其他复杂数
据结构的基础。
它的数据储存在节点中,称之为Node,Node中储存了一个保存的数据和指向下一个节点的Node类型的引用next。下一
个节点没有数据则指向null。
优点是真正的动态,不需要处理固定容量的问题。
缺点是丧失了随机访问的能力。
数组最好用于索引有语义的情况。scores[2]。最大的优点支持动态查询。
链表不适合索引有语义的情况,最大的优点:动态。
与数组相反,在链表头head添加元素是很方便的。
在数组中间添加节点的关键在于找到要添加节点的前一个节点。
链表的虚拟头结点:值为null,next指向head的虚拟结点。避免插入时头结点的特殊性,容易完成代码编写,逻辑清
晰。
只对链表头进行操作,时间复杂度只有O(1)。根据这个特点,可以用来实现栈

猜你喜欢

转载自blog.csdn.net/sinat_36748650/article/details/86500547