数组
数组最大的问题在于
- 每次扩容需要先开辟一块新数组
- 把旧数组的内容,一个个复制到新数组
- 再把旧引用,指向新数组的地址
- 速度慢-需要copy
- 浪费内存
- 数据删除的时候,被删位置后的数据,需要一个个向前平移
- 如果只是从一个集合中取,同时集合的长度是固定的,可以用Array
- 一旦牵扯到扩容和删除,array会超级麻烦
- 数组是一种线性连续型的存储结构,元素类型相同
- 数组的优点是存储速度较快
链表
- 离散存储的线性结构
- 链表中的元素内存上不必相连
- 元素彼此通过指针相连,每个节点只有一个前驱节点(除了首节点),每个节点也有一个后续节点(除了尾节点)
# 二叉树- 与链表类似,二叉树也存储了其子节点的指针。但二叉树存储的是左孩子与右孩子的地址。
- 通常的时候,二叉树存储都是有序的。左孩子节点小于父节点,右孩子节点大于父节点
- 由于二叉树特殊的存储方式,因此在查找数据的时候,用二叉树会特别方便(相较于链表)。。。整体逻辑类似于二分查找。

本文探讨了数组、链表和二叉树这三种常见数据结构的特点和应用场景。数组存储速度快,但在扩容和删除操作上效率低下,可能导致内存浪费。链表则通过指针实现离散存储,方便增删,但查找效率较低。二叉树以其特有的存储方式,提供快速查找能力,适合有序数据。理解这些数据结构的特性对于选择合适的数据结构优化算法至关重要。
5092

被折叠的 条评论
为什么被折叠?



