数据结构三要素:
逻辑结构、存储结构、数据运算
逻辑结构:数据之间的逻辑关系,与数据存储无关,独立于计算机。
分为:线性结构、非线性结构
线性结构:一般线性表、受限线性表(栈、队列、串)、线性表的推广(数组、广义表)(一对一的关系)
非线性结构:集合、树(一般数、二叉树)(一对多的关系)、图(有向图、无向图)(多对多的关系)
存储结构:数据结构在计算机的表示,也称物理结构
分为:顺序存储、连式存储、索引存储、散列存储
顺序存储:逻辑上相邻的数据元素,物理位置也相邻。优点:随机存储。缺点:使用相邻的一整块存储单元,造成外部碎片
链式存储:用指针表示元素之间的逻辑关系。优点:没有碎片化现象,缺点:指针占用存储空间,只能顺序存取
索引存储:在存储元素的同时,建立附加的索引表。
散列存储:利用关键字,直接计算元素的存储地址。缺点:用可能出现冲突。
数据运算:运算的定义和实现。
运算的定义:针对元素的逻辑结构
运算的实现:针对元素的存储结构
算法的时间复杂度:不仅依赖问题的规模,也取决于待输入数据的性质。