数据结构的概念
数据结构由三部分组成:逻辑结构、存储结构和数据的运算。
逻辑结构主要描述数据之间的关系,一对一or一对多or 多对多(线性表、树、图)。
存储结构就是逻辑结构在计算机中的实现,包括元素的表示和关系的表示
存储结构主要有四种:顺序存储、链式存储、索引存储和散列存储。
顺序存储的的评价:
可以进行随机存取,每个元素占用最少的存储空间。但是由于其是顺序存储,会产生相应的外碎片,会出现空间利用效率的问题。除此之外,当进行增删操作时,开销较大。
链式存储的评价:
用到相应的指针去表示元素之间的关系,逻辑上相邻的元素不必要求在物理上连续。不会出现外碎片,会因指针而占用额外的空间,只能进行顺序存取。
索引存储的评价:
在存储元素信息的同时,还建立附加的索引表。检索速度快;缺点是附加的索引表占用额外的存储空间。而且需要不断地维护这张表。
散列存储的评价:
根据元素的关键字直接计算出该元素的存储地址,哈希存储。检索、增删操作都很快;缺点是当散列函数不好的时候,会出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。
数据的运算:
包括数据运算的定义和实现。
plus:
有序表是有序的线性表,是逻辑结构的范畴。
循环队列是用顺序表表示的队列,是一种数据结构,包含逻辑结构和存储结构。
链式存储结构里节点内部的存储单元地址连续。
算法原地工作指算法所需要的辅助空间为常量。