数组 队列 链表 栈 树 散列表 堆 图
以上是常见的数据结构
数组:
- 特点:具有连续的内存空间,元素通过索引访问,可以快速访问任意位置的元素,适合随机访问。大小固定,需要连续的内存块。
- 应用:适用于需要频繁访问和修改元素的场景,如查找、排序和随机访问。
队列:
- 特点:先进先出的数据结构,新元素从一端(队尾)插入,从另一端(队首)删除,保持元素的顺序。
- 应用:常用于模拟排队、任务调度等场景,例如消息队列和广度优先搜索算法。
链表:
- 特点:由节点组成,每个节点存储数据和指向下一个节点的指针,节点在内存中可以非连续存储。插入和删除操作效率高,但访问任意位置的元素效率较低。
- 应用:适用于频繁插入和删除元素的场景,如实现栈、队列和哈希表等数据结构。
栈:
- 特点:后进先出的数据结构,只允许在栈顶进行插入和删除操作。
- 应用:常用于函数调用、表达式求值、深度优先搜索等场景,例如括号匹配和逆波兰表达式求值。
树:
- 特点:由节点组成,每个节点可以有多个子节点,形成层级关系。树包括二叉树、平衡树、二叉搜索树等不同类型。
- 应用:广泛应用于数据存储、搜索和排序等领域,例如文件系统、数据库索引和决策树等。
散列表:
- 特点:通过散列函数将键映射到存储地址,实现高效的插入、查找和删除操作。具有快速访问的特点,但不保持元素的顺序。
- 应用:适用于需要快速查找和插入的场景,如字典、缓存和哈希表等。
堆:
- 特点:特殊的树形数据结构,满足堆属性(最大堆或最小堆)。可以快速找到最大或最小值,并支持插入和删除操作。
- 应用:常用于优先级队列、排序算法和图算法等场景,例如Dijkstra算法和堆排序。
图:
- 特点:由节点(顶点)和边组成,顶点之间可以有多个关联关系。图分为有向图和无向图,可以有环和非连通部分。
- 应用:广泛应用于网络、社交关系、路径规划等领域,例如网络拓扑分析和最短路径算法。
记录一下今天是2024.2.28 /hfgydx/znkxyjs/2023217~~~/wyt