第六次作业
1.笔记
2.遇到的问题
数组和链表的区别
链表和数组的作用相同。都是用来存储数据。因此,使用数组和链表进行类比是一个不错的选择。但数组的大小总是固定的,在数组的头部插入数据的代价过大.
链表的几种实现方式
空头列表 为了防止再链表为空时出现头指针为 NULL 的情况。这种链表采用了一个没有数据只有指向 NULL 的指针的节点标志链表为空。这种的好处就是对于 Push 那种操作,我们不需要传递指针的指针进去。而且一些迭代操作的进行会比较简单。缺点就是会浪费内存空间。再就是有些算法的实现不怎么优雅。
环状链表 将尾指针的.next字段设为头指针的链表。指向任何一个节点的指针都可以被视为头指针。
双向链表 在链表的结构里添加一个 prev 字段,指向上一个节点。这种链表插入/删除元素需要的操作比较多。但是其他操作都被大大地简化了。
块链表 在一个链表节点内存储多个数据。