数据、数据元素、数据项这三个的关系类似表、元组、属性之间的关系,不过表、元组、属性之间具有确定的关系,而数据、数据元素、数据项之间只有层次关系而没有具体的关系。
数据结构包含以下几个方面:
所以数据结构由三个部分组成:逻辑结构、物理结构、运算。
数据的逻辑结构是从逻辑关系上描述数据(主要是相邻关系,比如栈、队列、链表等),它与数据的存储无关,是独立于计算机的。因此,数据结构可以看作从具体问题中抽象出来的数学模型。
数据的存储结构是逻辑结构用计算机语言的实现(逻辑结构在计算机存储中的映像),它是依赖于计算机语言的。
数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一组相应的运算。最常用的运算有:检索(查找)、插入、删除、更新、排序等。
对于一种数据结构,其逻辑结构总是唯一的,但它可以对应多种存储结构,并且在不同的存储结构中,同一运算的实现过程可能不同。
在不产生混淆的情况下,通常将逻辑结构简称为数据结构。
数据的逻辑结构主要有以下几类:
优点:节省存储空间,可以实现节点的随机存取(每个节点对应一个序号,由该序号可直接确定节点的存储地址)
缺点:不便于修改(在对节点进行插入、删除的操作时,可能要移动一系列的节点)。
优点:便于修改(在进行插入、删除操作时,只需要修改对应节点的指针域,不必移动节点)。
缺点:存储空间利用率较低(有一部分空间用来存储节点之间的逻辑关系了),不能进行随机存取(因为逻辑上相邻的节点在物理位置上不一定相邻)。
优点:支持随机访问(因为索引表是顺序存储的,类似于 C语言中的指针数组),具有较高的数据修改运算效率。
缺点:索引存储的方法增加了索引表,降低了存储空间的利用率。
优点:哈希存储方法的优点就是查找数据快,只要给出要查找节点的关键字,就可以立即计算出对应节点的存储地址。
缺点:哈希存储方法只存储节点的数据,不存储节点之间的逻辑关系。所以哈希存储方法一般只适合要求能够快速查找和插入的场合。
上面 4种基本的存储方法,既可以单独使用,也可以组合起来使用。同一种逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构,主要根据运算方便和算法的时空要求来决定。
转载自:
数据结构教程(第二版)
李春葆 等 编著
清华大学出版社
ISBN:978-7-302-14229-4
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。