-
线性结构:
- 数组(Array):数组是一段连续的内存空间,用于存储相同类型的元素,支持随机访问但插入和删除可能较慢。
- 链表(Linked List):链表中的元素在内存中不是顺序存放的,每个元素包含数据和指向下一个元素的指针,便于动态插入和删除,但访问速度较慢。
- 栈(Stack):是一种后进先出(LIFO)的数据结构,只允许在一端(栈顶)进行插入和删除。
- 队列(Queue):是一种先进先出(FIFO)的数据结构,允许在一端(队尾)插入,在另一端(队头)删除。
-
树形结构(Tree):树形结构中,元素之间存在一对多的关系,每个节点有零个或多个子节点。常见的树形结构有二叉树、平衡二叉树(如AVL树、红黑树)、B树等,用于实现高效的查找、插入和删除操作。
-
图(Graph):图是一种更为复杂的数据结构,其中的元素(节点)之间可以存在多对多的关系,通过边来连接。图可以是有向的也可以是无向的,广泛应用于表示网络、路径规划等问题。