第一章 绪论
1.储存结构:顺序储存,链式储存,索引储存,散列储存。
顺序储存:一维数组,按照逻辑顺序一次储存在一片连续的内存空间中。缺点在于没有内存碎片所以对于删减数据元素不太容易。适用于数据量不大,同时不经常删减的情况。
链式储存:链表,通过指针将数据连在一起,每个元素由数据域和指针域组成,指针域储存了下一个元素的地址。储存需求大,查找慢(需要从头遍历)但是容易删减元素
索引储存:索引表,通过建立索引表来组织数据,每一个索引都指向一个数据。查找速度快,但是内存占用高,同时不容易删除和插入数据。
散列储存:通过散列函数将数据元素映射到散列表中。查找速度快,但是空间占用多、同时可能出现冲突,所以常用在快速查找的哈希表和哈希数据库情况。
2.逻辑结构:集合(无序性、唯一性、确定性)、线性(线性表、栈)、树形(二叉树、堆)、图形(无向图、有向图、加权图)
集合:同属同一集合是唯一的联系。
线性、树形、图形:字面意义。
3.数据结构:逻辑结构、储存结构、算法
数据结构的基础:数据项、数据元素、数据对象
数据项:构成数据元素的最小的数据单位,不可分割。(学生信息表中学生的姓名)
数据元素:多个数据项,是数据的基本单位。(学生信息表中一个学生的信息)
数据对象:性质相同的数据元素的集合。(学生信息表)
4.算法与效率
算法:有穷性、确定性、可执行性、输入、输出
算法的目标:正确性、健壮性、可读性、高效性、低储存量
效率:事先估算+事后计算
评价:时间复杂度(描述算法执行时间随输入规模增长而增长的趋势)、空间复杂度(描述算法执行过程中所占用的存储空间随输入规模增长而增长的趋势)