1:链表:
是一种在物理上非连续、非顺序的数据结构,由若干节点所组成;
2:单向链表:
每一个节点包含两个部分,一部分存放数据的变量 data,另一部分是指向下一个节点的指针 next.
a:单向链表构成:
链表的第一个节点 被称为头节点,最好一个节点被称为尾节点,尾节点的指针指向空
3:双向链表:
双向链表比单向链表多了一个前置节点 prev 指针;
4:链表的存储方式:
链表的存储方式是随机存储;
5: 什么是随机存储;
数组在内存中占用了连续完整的存储空间,而链表采用见缝插针的方式,链表每一个节点分布在内存的不同位置;
6: 实现链表的 crud
请参考 https://github.com/down-to-earth1994/Java_Arithmetic.git
com.hyf.java_arithmetic.array.link 包下的 LinkTest.class 文件
7: 数组 VS 链表
| 查找 | 更新 | 插入 | 删除 |
| 数组 | |O(1) | |O(1) ||O(n) ||O(n) |
| 链表 ||O(n) | |O(1) ||O(1) ||O(1) |
总结:
数组的优势在于快速定位元素,读多,写少的场景;
对于频繁插入,删除操作的使用链表更合适;
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于