1.1 数据结构的概念
1.1.2 数据与数据结构
数据是信息的载体,是描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。
数据大致可以分为两类,一类是数值性数据,包括整数、浮点数、复数、双精度数等,主要用于工程和科学计算,以及商业事务处理,另一类是非数值数据,主要包括字符和字符串,以及文字、图形、图像、语音等数据
C++数据类型
进行编程语言编程时,需要用到各种变量来存储各种信息,C++为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型
整型:int,-2147483648到2147483647,2^31
浮点型:float,占4个字节(32位)内存空间,
双浮点型:double,占8个字节(64位)内存空间
数据的基本单位是数据元素 (data element),一个数据元素可由若干个数据项 (data item)组成,它是数据整体中相对独立的单位
在数据元素中的数据项可以分为两种,一种叫做初等项,指在数据处理时不能在分割的最小单位 (如学生的性别、籍贯),另外一种叫做组合项,指可以再划分为更小的项 (比如学生的成绩可以分为物理、化学等更小的项)
数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关系,这种数据元素之间的关系称为结构
由此可以引出数据结构的定义:
数据结构由某一数据元素的集合和该集合中元素之间的关系组成
记为:
Data_Structure={D,R}
Data \_ Structure = \{ D, R \}
Data_Structure={D,R}
其中,DDD指某一数据元素的集合,RRR是该集合中所有数据元素之间的关系的有限集合
1.1.3 数据结构的分类
- 线性结构
线性结构也称线性表,在这种结构中所有数据元素都按某种次序排列在一个序列中,对于线性结构类中每一个数据元素,除第一个元素外,其他每一个元素都有一个且仅有一个直接前驱,第一个数据元素没有前驱;除最后一个元素外,其他每一个元素都有一个且仅有一个直接后继,最后一个元素没有后继
根据对线性结构中数据元素存取方法的不同,线性结构可以分为直接存取结构、顺序存取结构、字典结构
直接存取结构:可以直接存取某一指定项而不须先访问其前驱,比如数组
顺序存取结构:只能从序列中第一个数据元素起,按序诸葛访问直到指定的元素,比如栈、队列等
字典结构:与数组有相似之处,但字典是通过关键码 (key) 进行索引
- 非线性结构
在非线性结构中各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或多个其他数据元素发生联系
层次结构是按层次划分的数据元素的集合,指定层次上元素可以有零个或多个处于下一层次上的直接所属下层元素,树形结构就是典型的层次结构,树中的元素叫做结点
群结构中所有元素之间无顺序关系,集合就是一种群结构,在集合中没有重复的元素;另一种群结构就是图结构,它是由图的顶点集合和连接顶点的边集合组成;还有一种图的特殊形式,即网络结构,它给每条边赋予一个权值,这个权值指名了在遍历图时经历此边时的耗费

959

被折叠的 条评论
为什么被折叠?



