了解真相、你才能获得真正的自由、而不只是死记规则

定位:

  • 并无官方定义
  • 工作一两年后,需要了解算法

民间定义

  • 数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可通过相关的函数给出—-《数据结构、算法与应用》
  • 数据结构是ADT(抽象数据类型)的物理实现 —-《数据结构与算法分析》
  • 数据结构是计算机存储、组织数据的方式。通常,精心选择的数据结构可以带来最优效率的算法
    —-中文维基百科

自己角度

  • 数据结构就是计算机中,存储和组织数据的方式
  • 如果你拥有一个图书馆,如何摆放图书:
    • 新书如何插入
    • 怎么找到指定的书
    • 推荐: 将书架划分几块区域,按照类别存放,类别中按照字母顺序
  • 常见的数据结构:
    • 队列、栈、树、堆、数组、链表、图、散列表
  • 算法(Algorithm)的认识
    • 不同的算法、执行效率不同
  • 算法的定义
    • 一个有限指令集,每条指令的描述不依赖于语言
    • 接受一些输入(有些情况不需要输入)
    • 产出输出
    • 一定有限步骤之后终止
  • 通俗的理解:
    • Algorithm这个单词本意就是解决问题的办法/步骤逻辑
    • 数据结构的实现,离不开算法

数据结构

  • JS数组就是API的调用
  • 补充:普通语言的数组封装(java的ArrayList)
    • 常见语言的数组不能存放不同的数据类型,因此所有在封装时通常存放在数组中的是Object类型
    • 常见语言的数组容量不会自动改变,需要进行扩容操作
    • 常见语言的数组进行中间插入和删除性能比较低