2022-06-13
4 min read

数据结构分类

数据结构有哪些

二叉树、链表、数组、堆、栈、队列、哈希、字符串

二叉树

  • 二叉树的基本操作 ⭐⭐
  • 二叉树的中序遍历 ⭐⭐
  • 二叉树的前序遍历 ⭐⭐
  • 二叉树的后序遍历 ⭐⭐
  • 二叉树的层次遍历 ⭐⭐
  • 重建二叉树 ⭐⭐
  • 对称二叉树 ⭐⭐
  • 二叉树的镜像 ⭐⭐
  • 二叉树的最大深度 ⭐⭐
  • 二叉树的最小深度 ⭐⭐
  • 平衡二叉树 ⭐⭐
  • 序列化和反序列化二叉树 ⭐⭐⭐
  • 二叉树的最近公共祖先
  • 二叉搜索树中的搜索
  • 删除二叉搜索树中的节点 ⭐⭐⭐
  • 完全二叉树的节点个数 ⭐⭐⭐
  • 二叉树的锯齿形层次遍历
  • 二叉搜索树中第 K 小的元素

链表

  • 基本结构
  • 从头到尾打印链表
  • 反转链表
  • 复杂链表的复制
  • 合并两个排序的链表
  • 链表倒数第k个节点
  • 链表中环的入口
  • 两个链表的第一个公共节点(相交链表)
  • 链表中倒数第k个节点
  • 删除链表中的节点or重复的节点
  • 排序链表 ⭐⭐⭐
  • 通过链表的后续遍历判断回文链表问题
  • 合并 K 个升序链表 ⭐⭐⭐⭐
  • 回文链表
  • 约瑟夫环
  • 相交链表

数组

  • 双指针
    • 调整数组顺序使奇数位于偶数前面
    • 和为 S 的两个数字
    • 和为 S 的连续正整数序列
  • N数之和
    • 两数之和
    • 三数之和
    • 四数之和
  • 二维数组
    • 构建乘积数组
    • 顺时针打印矩阵
  • 数据统计
    • 数组中出现次数超过数组长度一半的数字
    • 连续子数组的最大和
    • 扑克牌顺子
    • 第一个只出现一次的字符
  • 其它
    • 数组中重复的数据

  • 数据流中的中位数
  • 最小的k个数

  • 使用两个栈实现先入先出队列
  • 包含min函数的栈
  • 栈的压入、弹出序列
  • 有效的括号
  • 简化路径

队列

  • 滑动窗口的最大值

哈希

  • 两数之和
  • 三数之和
  • 字符流中第一个不重复的字符
  • 宝石与石头
  • 每日温度

字符串

  • 表示数值的字符串
  • 替换空格
  • 正则表达式匹配
  • 字符串的排列
  • 字符串翻转
  • 左旋转字符串
  • 字符流中第一个不重复的字符
  • 括号生成
  • 最长公共前缀
  • 最长回文子串
  • 有符号整数反转