面试题:常见的数据结构的优缺点?(数据结构+算法)
解答:https://blog.csdn.net/Yuyh131/article/details/83629606
数据结构:简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。
常见的数据结构:栈、队列、数组、链表、树、图、字典树(高效树形结构)、散列表(哈希表)
图片源自于:https://blog.csdn.net/qinglv1/article/details/90756711
栈和队列:
| 栈的基本操作: | 面试中关于栈的常见问题: |
|---|---|
|
|
|
| 队列的基本操作: | 面试中关于队列的常见问题: |
|---|---|
|
|
数组和链表:
| 数组的基本操作: | 面试中关于数组的常见问题: |
|---|---|
|
|
| 链表的基本操作: | 面试中关于链表的常见问题: |
|---|---|
|
|
图:
是一组以网络形式相互连接的节点。节点也称为顶点。 一对节点(x,y)称为边(edge),表示顶点x连接到顶点y。
边可以包含权重/成本,显示从顶点x到y所需的成本。
| 图的类型 | 程序中的表现形式 | 常见遍历算法 | 面试中关于图的常见问题 |
|---|---|---|---|
|
|
|
|
树:
树形结构是一种层级式的数据结构,由顶点(节点)和连接它们的边组成。 树类似于图,但区分树和图的重要特征是树中不存在环路。
树形结构被广泛应用于人工智能和复杂算法,它可以提供解决问题的有效存储机制。
这是一个简单树的示意图,以及树数据结构中使用的基本术语:
Root - 根节点
Parent - 父节点
Child - 子节点
Leaf - 叶子节点
Sibling - 兄弟节点
| 以下是树形结构的主要类型: | 面试中关于树结构的常见问题: |
|---|---|
|
|
字典树(Trie):
字典树,也称为“前缀树”,是一种特殊的树状数据结构,对于解决字符串相关问题非常有效。它能够提供快速检索,主要用于搜索字典中的单词,在搜索引擎中自动提供建议,甚至被用于IP的路由。
| 面试中关于字典树的常见问题 |
|---|
|
哈希表:
是一个用于唯一标识对象并将每个对象存储在一些预先计算的唯一索引(称为“键(key)”)中的过程。因此,对象以键值对的形式存储,这些键值对的集合被称为“字典”。可以使用键搜索每个对象。基于哈希法有很多不同的数据结构,但最常用的数据结构是哈希表。
哈希表通常使用数组实现。
| 散列数据结构的性能取决于以下三个因素: | 面试中关于哈希结构的常见问题: |
|---|---|
|
|