简述下列概念:数据,数据元素数据项,数据对象,数据结构,抽象数据类型。
数据
数据是客观事物的符号表示,指的是所有能输入到计算机中并被技术按及程序处理的符号的总称。
例如:数学计算中用到的整数和实数,文本编辑用到的字符串,多媒体程序处理的图形,图像,声音,动画等通过特殊编码定义后的数据
数据元素
数据元素是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为袁术,节点,记录等。数据元素用于完整地描述一个对象,比如一个学生的记录。
数据项
数据项是组成数据元素的,**有独立含义的**,**不可分割的最小单位**。
例如一个学生基本信息表中的学号,姓名等都是数据项。
数据对象
数据对象是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,1,2,3.....},字母字符数据对象是集合C={‘a’,'b','c'.....}
数据结构
数据结构是互相之间存在一种或多种特定关系的数据元素集合。
换句话说,数据结构是带“结构”的数据元素的集合。“结构”就是元素之间存在的关系。
逻辑结构
逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构
存储结构是数据对象在计算机中的存储表示,也成为物理结构
抽象数据类型
抽象数据类型是有用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
包括三部分:数据对象,数据对象上关系的集合和对数据对象的基本操作的集合。
简述逻辑结构的四种基本关系,以及他们的关系图。
集合结构
数据原属之间除了“属于同一集合”的关系外,别无其他关系。
例如:确认一名学生是否为班级成员,只需要将班级看作一个集合。
线性结构
数据元素存在一对一的关系。
例如将学生信息数据按照报名时间的先后顺序进行排列,就形成一个线性结构
树形结构
数据元素之间存在一对多的关系。
例如:在班级体系同,班长管理多个组长,组长管理多名组员,从而构成树形结构。
图结构或网状结构
数据元素之间存在多对多的关系
例如:多为同学之间的朋友关系,任何两位同学都可以是朋友,从而构成图形结构或网状结构,
其中树结构和图结构都属于非线性结构。
![四种基本逻辑结构关系图](https://i-blog.csdnimg.cn/blog_migrate/344b812fa7ce8e501ec5641f635a8207.png)
存储结构的两种基本存储方法。
顺序存储结构
顺序存储结构是借助元素在存储器中的相对位置来表示元素间的逻辑关系。
通常借助程序设计语言是数组类型来描述。
需要开辟连续的存储空间,依次存放。
链式存储结构
顺序存储结构要求所有的元素依次存放在一片连续的存储空间中。
而链式存储结构,无需占用一整块存储空间。但是为了表示节点之间的关系,需要给每个节点附加指针字段。
指针字段用于存放后续元素的存储地址,所以链式存储结构通常借助程序设计语言的指针类型来描述。
知识补充:
在数据结构中,从逻辑上可以把数据结构分为线性结构和非线性结构。
数据的逻辑结构与数据元素本身的形式,内容,相对位置,个数是无关的。
通常要求同一逻辑结构中的所有数据元素具有相同的特征,这意味着不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致。
一些表面很不相同的数据却有可能有相同的逻辑结构。
数据元素是数据的基本单位,数据项是数据的最小单位,数据结构是带有结构的各数据元素的集合。
算法的复杂度却决于问题的规模和待处理数据的初态。
算法的时间复杂度不仅与问题的规模有关,还与问题的其他因素有关。
如某些排序算法,其执行时间与待排序记录的初始状态有关。
欢迎评论回答章尾问题 :
问:试举一个数据结构的例子,叙述其逻辑结构和存储结构两个方面的含义和相互关系。