数据结构的两个层次
- 逻辑结构:
- 描述数据元素之间的逻辑关系
- 与数据的存储无关,独立于计算机
- 是从具体问题抽象出来的数学模型
2.物理结构(存储结构)
- 数据元素及其关系在计算机存储器中的结构(存储方式)
- 是数据结构在计算机的表示
关系:
- 存储结构是逻辑关系的映象与元素本身的映象
- 逻辑结构是数据结构的抽象,存储结构是数据结构的实现
- 两者综合起来建立了数据元素之间1的结构关系
逻辑结构的种类:
- 线性结构:
有且只有一个开始和一个终端结点,并且所有节点最多只有一个直接前驱和一个直接的后继。如:线性表,栈,队列,串等。
- 非线性结构:
一个结点可能有多个直接前驱和直接后继 。如:树,图。
存储结构的种类:
- 顺序存储结构:顺序存储结构将数据元素按照逻辑顺序依次存放在一片连续的存储空间中。这种结构适合于元素数量不多的情况,并且可以直接通过索引来访问元素。
数据元素存放在地址连续的存储单元里,数据间的逻辑关系和物理关系一致,不方便插入和删除。内存空间是连续的
- 链式存储结构:链式存储结构通过每个元素中的指针来链接其他元素。这种结构可以更有效地利用存储空间,但访问元素需要更多的时间,因为需要先找到正确的指针。
数据元素存放在任意的存储单元里,这组存储单元可以连续也可以不连续,需要一个指针存放数据元素的地址。
- 索引存储结构:索引存储结构通过索引表来快速定位到数据元素在内存中的位置。这种结构适用于元素数量较多的情况,但会占用额外的存储空间。
创建唯一性索引,保证数据库表中每一行数据的唯一性,加快数据的检索速度。
- 散列存储结构:散列存储结构通过散列函数将元素的键值映射到内存中的位置。这种结构可以实现元素的快速访问,但需要解决散列冲突的问题。
散列表也被称为hash表,它是一种用于以常数平均时间执行插入、删除和查找的技术。
总结和个人体会:
对于逻辑结构和物理结构的理解,我认为需要明确这两者的关系。逻辑结构主要关注数据元素之间的逻辑关系,是数据在人们脑海中的表示方式;而物理结构则关注数据在计算机内存中的存储和访问方式。这 两者是相互独立的,也就是说,逻辑结构可以采取多种物理结构的实现方式。