标签列表

everest33

自制力

导航

数据结构学习杂记

黑马教程:https://www.bilibili.com/video/BV17F411T7Ao?p=189

※,数据结构

  • 数据结构是计算机底层存储、组织数据的方式。
  • 是指数据之间是以什么方式排列在一起的。
  • 数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。
  • 一般情况下,精心选择的数据结构能够带来更高的运行或存储效率。

※,如何学习(简单版)

  • 每种数据结构长什么样子
  • 如何添加数据
  • 如何删除数据

※,常见的数据结构

  • 栈:后进先出,先进后出。栈是一个容器,一端开口,一端封闭。像个杯子。
  • 队列:后进后出,先进先出。两端开口的容器,上面是后端,下面是前端。
    • 数据从后端进入队列模型的过程称为:入队列
    • 数据从前端离开队列模型的过程称为:出队列
  • 数组:数组是一种查询快,增删慢的模型。
    • 查询速度快:查询数据通过(整个数组的)地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
    • 删除效率低:要将原始数据删除,同时后面每个数据前移。
    • 添加效率极低:添加位置后的每个数据后移,再添加元素。如果数组已经满了,还需要扩容。
  • 链表:链表中的结点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址。
    • 链表查询慢,无论查询哪个数据都要从头开始找。
    • 链表增删相对快(相对于数组而言)
    • 链表有单向链表和双向链表。单向链表记录数据和下一个结点的地址。双向链表记录数据和前后结点的地址。
  • 二叉树:任意节点的度<=2。度即每个节点的子节点数量。
  • 二叉查找树:又称二叉排序树或二叉搜索树。
    • 二叉查找树特点:
      • 每个节点上至多两个子节点
      • 任意节点上的左子树的值都小于当前节点。
      • 任意节点上的右子树的值都大于当前节点。
    • 二叉查找树添加节点规则:小的存左边,大的存右边,一样的不存。
  • 平衡二叉树:任意节点左右子树高度差不超过1。
  • 红黑树:是一种二叉查找树,不一定是平衡二叉树。参考此视频教程
    • 红黑树的增删改查性能都很好。

※,

 


 

posted on 2023-04-13 17:35  everest33  阅读(21)  评论(0编辑  收藏  举报