一、数据的逻辑结构
集合:结构中的数据元素之间除“同属一个集合”外,别无其他关系。
线性结构:只存在一对一的关系。
树形结构:存在一对多的关系。
图状结构或网状结构:存在多对多的关系。
二、数据的存储结构
1.顺序存储
优点:可以实现随机存取。
缺点:只能使用相邻的一整块存储单元,可能产生较多的外部碎片。
2.链式存储
优点:不会出现碎片现象,能够充分利用所有存储单元。
缺点:每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。
3.索引存储:在存储元素信息的同时,还建立附加的索引表。
优点:检索速度快。
缺点:附加的索引表额外占用存储空间,增加和删除数据时也要修改索引表,会花费较多的时间。
4.散列存储
优点:检索、增加和删除结点的操作都很快。
缺点:若散列函数不好,则可能出现元素存储单元的冲突,解决冲突会增加时间和空间开销。
三、算法
1.算法原地工作是指算法所需的辅助空间为常量,即O(1)。
2.原地算法:直接修改输入数据而不是将输入数据复制处理后再覆盖原数据。(存疑!!!)