数据结构

209 阅读1分钟

链表

  • 添加和删除比较方便, 只需改变指针指向, 删除时不会立即释放内存, 而是在用到此空间时才会覆盖
  • 访问耗时, 要从第一个数据开始, 顺着指针顺序访问
  • 分散存储于内存中, 不必是连续空间

数组

  • 添加和删除耗时, 比如添加, 要把新数据之后的数据一个一个后移, 再把这个新数据放入刚刚腾出来的地方
  • 访问方便, 可通过下标算出
  • 存储在内存的连续空间内

  • 先进后出, 类似弹夹中的子弹

队列

  • 先进先出, 类似排队买东西

哈希表

  • 数组与链表结合体

  • 适用于取出最小的值
  • 每个节点最多有两个子节点, 子节点必须大于父节点, 排列顺序为从上到下, 同一行为从左到右
  • 取出顶端数据是, 优先把最后的数据移到顶端再排序

二叉查找树

  • 每个节点最多两个子节点
  • 每个节点的值均大于其左子树任意一节点值, 小于其右子树任意一节点值