【前端面试】数据结构与set和map

数据结构概念

数据结构 是计算机科学中用于存储、组织和操作数据的方式。数据结构通常可以分为以下几类:

  1. 线性数据结构:

    • 数组(Array)
    • 链表(Linked List)
    • 栈(Stack)
    • 队列(Queue)
    • 这些结构通常支持顺序或按线性方式访问和操作元素。
  2. 非线性数据结构:

    • 树(Tree)
    • 图(Graph)
    • 这些结构具有复杂的层级关系或节点间的连接。
  3. 集合数据结构:

    • Set:存储唯一元素的集合。
    • Map:存储键值对的映射关系。
    • 哈希表(Hash Table) :通常用于实现 Map。
    • 这些结构专注于特定的元素存储方式和访问方式。

栈 和 堆 是内存管理方式,但在某些场景下也可以被看作特定的 数据结构。

  1. 栈(Stack):

    • 栈是一种 线性数据结构 ,遵循 后进先出(LIFO) 原则,即最后被加入的数据最先被访问。
    • 常用于函数调用管理、表达式求值、递归实现等。
  2. 堆(Heap):

    • 堆在数据结构中通常指的是一种 完全二叉树,具有特定的顺序性(例如,最大堆或最小堆)。
    • 主要用于实现优先队列,常见于排序算法、内存分配等。
    • 在内存管理中,堆也是指一种用于动态分配内存的区域,但这与数据结构中的堆(例如优先队列)有不同的含义。

Set 和 Map 是数据结构中的集合类型,常用于存储和查找数据。

  • Set 和 Map 是 非线性数据结构 ,它们可以通过哈希表等方式实现。它们主要用于:
    • Set :存储 不重复的元素,适合用于去重和快速查找是否存在某个元素。
    • Map :存储 键值对,适合用于实现字典或映射,提供快速的键查找。

总结:

  • 栈 和 堆 是 内存管理 中的概念,也可以被视为 线性数据结构 (栈)和 树状数据结构(堆)。
  • Set 和 Map 是 集合数据结构 ,用于存储 唯一值 和 键值对,在数据存储和查找方面提供高效的操作。

它们虽然都属于数据结构的范畴,但用途和设计目标不同,栈和堆更多关注 数据的存储和管理方式 ,而 Set 和 Map 则是用于 特定数据组织和操作 的工具。

相关推荐
西柚小萌新32 分钟前
【岗位面试】--成都博维数孪 - 工业 AI 解决方案顾问
人工智能·面试·职场和发展
小 黄 鸡1 小时前
Flutter 面试必会知识点详解(从基础到进阶)
flutter·面试·职场和发展
mmmmath_32 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
我命由我123457 小时前
田野笔记极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
信奥卷王9 小时前
[GESP202509 六级] 划分字符串(含视频)
数据结构·算法
局部有解9 小时前
Leetcode Hot100 - 最长连续序列
算法·leetcode·职场和发展
m0_752035639 小时前
Redis 数据结构总结
数据结构·数据库·redis
tachibana29 小时前
Go 语言的 Map 是否是并发安全的?
开发语言·数据结构·后端·golang·go·语言
Logic10110 小时前
C语言/数据结构字符串题解:统计“chhc“子串权值总和——一次遍历模式匹配
c语言·数据结构·算法·字符串·时间复杂度·空间复杂度·ascii
java_nnnn10 小时前
LeetCode刷题滑动窗口(最大连续1的个数三+将x减到0的最小操作数)Java
算法·leetcode·职场和发展