目录
1. 什么是数据结构?
2. 描述数据结构的类型?
3. 什么是线性数据结构?举例说明
4. 数据结构有哪些应用?
5、文件结构和存储结构有什么区别?
6、什么是多维数组?
7. 什么是链表数据结构?
8.什么是双向链表?请举例
9. 为什么要做算法分析?
10、堆栈在哪里使用?
最近不少同学在找工作,怎样在面试中拿到更多offer呢,那就要看面试的表现如何啦。圣普伦给大家整理了10个大数据和算法岗位最常被问到的问题,大家自取哦~
1. 什么是数据结构?
数据结构是数据组织(存储)和操作进行检索和访问的方式。它还定义了不同数据集相互关联、建立关系和形成算法的方式。
2. 描述数据结构的类型?
- 列表:链接到先前或/和后续数据项的相关事物的集合。
- 数组:所有相同的值的集合。
- Records:字段的集合,每个字段都包含来自单一数据类型的数据。
- 树:在分层框架中组织数据的数据结构。这种形式的数据结构遵循数据项插入、删除和修改的顺序。
- 表格:数据以行和列的形式保存。这些与记录相当,因为数据的结果或更改反映在整个表中。
3. 什么是线性数据结构?举例说明
如果数据结构的所有元素或数据项都按顺序或线性顺序排列,则数据结构是线性的。元素以非分层方式存储,因此除了列表中的第一个和最后一个元素外,每个项目都有后继者和前驱者。
数组、堆栈、字符串、队列和链表,都属于线性数据结构。
4. 数据结构有哪些应用?
数值分析、操作系统、人工智能、编译器设计、数据库管理、图形、统计分析和仿真。
5、文件结构和存储结构有什么区别?
区别在于访问的内存区域。存储结构是指计算机系统内存中的数据结构,而文件结构是指辅助存储器中的存储结构。
6、什么是多维数组?
多维数组的意思是指三维或者三维以上的数组。 三维数组具有高、宽、深的概念,或者说行、列、层的概念,即数组嵌套数组达到三维及其以上。是最常见的多维数组,由于其可以用来描述三维空间中的位置或状态而被广泛使用。
7. 什么是链表数据结构?
这是最常见的数据结构面试问题之一,面试官希望你给出全面的答案。尝试尽可能多地解释,而不是用一句话来完成你的答案!
它是一个线性数据结构或一系列数据对象,其中元素不存储在相邻的内存位置。元素使用指针链接以形成链。每个元素都是一个单独的对象,称为节点。每个节点有两项:数据字段和对下一个节点的引用。链表中的入口点称为头。如果列表为空,则头部为空引用,最后一个节点具有对空的引用。
一个链表是一个动态的数据结构,其中节点的数量是不固定的,这样的例子有扩大和缩小需求的能力。
它适用于以下情况:
- 我们处理未知数量的对象或不知道列表中有多少项目;
- 我们需要从列表中进行恒定时间的插入/删除,就像在时间可预测性至关重要的实时计算中一样;
- 不需要随机访问任何元素;
- 该算法需要一个数据结构,无论对象在内存中的物理地址如何,都需要在其中存储对象;
- 我们需要在列表中间插入项目,就像在优先队列中一样;
- 一些实现是堆栈和队列、图形、名称目录、动态内存分配以及对长整数执行算术运算
8.什么是双向链表?请举例
它是链表的一种复杂类型(双端 LL),其中一个节点有两个链接,一个连接到序列中的下一个节点,另一个连接到前一个节点。这允许在两个方向上遍历数据元素。
举例:
- 带有下一个和上一个导航按钮的音乐播放列表
- 具有 BACK-FORWARD 访问页面的浏览器缓存
- 浏览器上的撤消功能
9. 为什么要做算法分析?
一个问题可以使用多种解决算法以多种方式解决。算法分析提供对算法所需资源的估计,以解决特定的计算问题。还确定了执行所需的时间和空间资源量。
算法的时间复杂度量化了算法运行所花费的时间,作为输入长度的函数。空间复杂度量化了算法占用的空间或内存量,以作为输入长度的函数运行。
10、堆栈在哪里使用?
- 求值前缀、后缀和中缀表达式的表达式、求值或转换
- 语法解析
- 字符串反转
- 括号检查
- 回溯
今天先和大家聊到这儿,大数据/算法岗位经典面试题,我们下次再聊,预祝大家都能拿到心动offer,如需帮助请戳我哟~