问题1:数据结构是什么?
数据结构就是研究数据的逻辑结构和物理结构以及它们之间的关系,并对这种结构定义相应的运算,且确保经过这些运算之后得到的新结构仍然是原来的结构类型。
通俗:研究数据的逻辑结构和物理结构以及它们之间的关系,人为改变其原结构,但不改变结构的本质,使其更优,即化繁为简。
问题2:数据是什么?
数据指所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。
多一句:对于如今的计算机科学而言,数据的含义极为广泛,依据定义,我们可以将各种图像、声音、行为等进行编码,因此,只要能被编码都可以归于数据的范畴。
问题3:数据元素是什么?
数据元素是数据的基本单位。
多一句:数据是一个集合,而数据元素是集合中的一个元素
深入数据元素
位、位串、元素的概念
计算机中表示信息的最小单位是二进制数中的一位,叫做位,若干个位组合起来形成的一个位串表示一个数据元素,通常称这个位串为元素或结点
引出一个问题:若干数据项组成数据元素,那么数据项与位串的关系是什么?
问题4: 数据项是什么?
数据项是数据元素的最小单位,一个数据元素可由若干个数据项组成。
多一句:比如我们把书目信息作为一个数据元素,而信息中的作者名、书名、出版社等等组成了书目信息,因此这些都可称为数据项。
数据项与位串的关系
若干数据项组成一个数据元素,位串中对应于各个数据项的子位串称为数据域
问题1:是否可以理解为 数据项就代表着位串中对应的子位串
一个位串称为一个元素,而位串又表示为数据元素,则数据元素有时也简称为元素
问题5:数据类型是什么?
在高级程序设计语言中,变量所具有的数据种类。比如整型、浮点型、字符型等等,用以程序操作对象的特性
每个变量、常量、表达式都有一个确定是数据类型,类型规定了它们的取值范围,以及允许进行的操作,因此可以概括说: 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
从“值”的不同特性 角度来看
按“值”的不同特性来看,高级程序语言中的数据类型分为两类:
-
非结构的原子类型
原子类型的值是不可再分解的,例如C语言中的基本类型(整型、浮点型、字符型、枚举类型) 、指针类型、空类型
-
结构类型
结构类型的值是由若干成分按照某种结构组成的,因此是可分解的,并且它的成分可以是非结构的,也可以是结构的。例如 C语言中的数组
问题6:讲一讲数据结构的三要素
1. 逻辑结构
逻辑结构指数据元素之间的逻辑关系。分为四种。
- 数据元素之间若无关系,则为集合结构
- 数据元素之间是一对一的关系,则是线性结构 (像贪吃蛇一样)
- 数据元素之间是一对多的关系,则是树形结构
- 数据元素之间是多对多的关系,则是图结构
2. 存储结构
存储结构又称为物理结构,指数据结构在计算机中的表示
存储结构的种类
存储结构逻辑上只分为两种:顺序存储结构和链式存储结构
顺序存储的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系
链式存储的特点是借助指示元素存储地址的指针表示数据元素之间的逻辑关系
常见存储结构四种
-
顺序存储
-
链式存储
-
索引存储
-
哈希存储(散列存储)
回头看:回答问题:请简要讲一下四种存储的实现方式
3. 数据的运算
针对某种逻辑结构,结合实际要求,定义基本运算