数据结构
线性数据结构
| 数据结构 | 特点 | 优点 | 缺点 |
|---|---|---|---|
| 数组 | 大小固定,元素存储在连续的内存位置。 | 通过索引快速访问元素。 | 大小固定,调整大小效率低下。 |
| 链表 | 大小动态可变,元素通过指针链接。 | 易于插入和删除。 | 由于需要顺序遍历,访问元素较慢。 |
| 栈 | LIFO(后进先出)结构,可使用数组或链表实现。 | 易于实现;提供后进先出的访问方式。 | 访问灵活性有限(只能访问栈顶)。 |
| 队列 | FIFO(先进先出)结构,可使用数组或链表实现。 | 有序数据管理;确保先进先出的访问方式。 | 访问灵活性有限(只能访问队列头部)。 |
非线性数据结构
| 数据结构 | 特点 | 优点 | 缺点 |
|---|---|---|---|
| 树 | 节点通过边连接的层次结构,无环,有一个根节点。 | 反映结构关系,高效的搜索、插入和删除。 | 可能变得不平衡,导致操作效率低下。 |
| 图 | 由顶点/节点和边组成,可以是定向的或无向的,可能包含环。 | 高度灵活,表示复杂的关系和网络。 | 遍历和搜索需要更复杂的算法。 |
| 堆 | 满足堆属性(例如,最小堆或最大堆)的专用树形结构。 | 适用于优先队列操作,便于快速访问最大/最小值。 | 主要用于优先队列,不用于搜索操作。 |