最近离职了,得重新刷一下数据结构,先看《大话数据结构》这本书,顺便写写有用的和有感悟的点,相当于为面试铺路了。
1, 首先是数据的理解
数据是计算机可以识别的输入
数据对象约等于数据的抽象化(同类项合并集合),比如每个人是一个集合,那这个人就是一个数据/数据对象,都有相同的构成(站立动物)和相同的操作(走跑跳)。
数据元素进一步抽象 比如人体的头颈肩等。
数据项最小抽象 比如头的属性 脑容量。
这个概念其实没有那么清晰的分类,比较抽象,理解的并不到位可能。
然后是数据结构的两种结构 逻辑结构和物理结构
首先物理结构,计算机物理结构两种,线性结构(顺序存储)和链式结构(跳跃存储),这个没什么说的,据我所知计算机的确只有这两种存储结构。这样其实是底层计算机的存储模式,没有绝对的好坏,顺序存储决定了好查(寻址)但是难增删,链式决定了好增删难查。
其次是逻辑结构,主要是集合(无序?), 线性(链式), 树形(根节点的一对多),图(多对多,有向图无向图)。
大概是这些,在这些基础上有很多衍生的非常好用的数据结构,再逐个去看和理解,同时避免刷算法的时候盲目去刷,大概是刷算法先看看要求然后想想用哪个数据结构(大部分)。