数据的逻辑结构
数据的逻辑结构,简单地理解,就是指的数据之间的逻辑关系。
以上所说,父子、兄弟等这些关系都指的是数据间的逻辑关系,假设我们要存储这样一张家庭成员关系图,不仅要存储张平、张华等数据,还要存储它们之间的关系,两者缺一不可。
一组数据成功存储到计算机的衡量标准是要能将其完整的复原。例如图 1 所示的成员关系图,如果所存储的数据能将此成员关系图彻底复原,则说明数租蚂稿据存储成功。
数据之间的逻辑关系可细分为三类,“一对一”、“一对多”和“多对多”:
“一对一”:类似集合 {1,2,3,...,n} 这类的数据,每个数据的左侧有且仅有一个数据与其相邻(除 1 外);同样,每个数据的右侧也只有一个数据与其相邻(除 n 外),所有的数据都是如此,就说弊孝数据之间是“一对一”的逻辑关系;
“一对多”:图 1 中的数据就属于“一对多”,因为对于张平来说,有且仅有一个父亲(张亮),但是有 2(多)个孩子;
“多对多”:拿图 2 来说,从 V1 可以到达 V2、V3、V4,同样,从 V2、V3、V4 也可以到达 V1,对于V1、V2、V3和V4来说,它们之间就是“多对多”的关系;
通过学习数据结构,我们可以学到 3 种存储结构分别存储这物耐 3 类逻辑关系的数据,换句话说:
线性表用于存储具有“一对一”逻辑关系的数据;
树结构用于存储具有“一对多”关系的数据;
图结构用于存储具有“多对多”关系的数据;
由此,我们可以通过分析数据之间的逻辑关系来决定使用哪种存储结构,但具体使用顺序存储还是链式存储,还要通过数据的物理结构来决定。