目录
1.1数据结构的基本概念
1.1.1基本概念和术语
1 数据
数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。
数据是计算机程序加工的原料。
2 数据元素
数据元素是数据的基本单位。
3 数据对象
数据对象是具有相同性质的数据元素的集合,是数据的子集。
4 数据类型
数据类型是一个值的集合和定义在此集合上的一组操作的总称。
(1)原子类型。其值不可再分的数据类型。
(2)结构类型。其值可以再分解为若干成分(分量)的数据类型。
(3)抽象数据类型。抽象数据组织及与之相关的操作。
5 数据结构
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据元素相互之间的关系称为结构(structure)。
数据结构包括三方面的内容:逻辑结构、存储结构和数据的运算。
(1)逻辑结构
指元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的。
数据的逻辑结构分为线性结构和非线性结构,线性表是典型的线性结构,集合、树和图是典型的非线性结构。
集合:数据元素之间的关系为“同属一个集合”;
线性结构:元素之间只存在一对一的关系
树形结构:元素之间存在一对多的关系;
图状或网状结构:结构中的数据元素之间存在多对多的关系。
(2)存储结构
存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。
1 顺序存储
2 链式存储
3 索引存储
4 散列存储
(3)数据的运算
施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的。指出运算的具体操作的步骤。
归纳总结
抽象数据类型ADT描述了数据的逻辑结构和抽象运算,通常用(数据对象,数据关系,基本操作集)这样的三元组来表示,从而构成了一个完整的数据结构定义。
顺序表、哈希表和单链表是三种不同的数据结构,既描述逻辑结构,又描述存储结构和数据运算。而有序表是指关键字有序的线性表,仅描述元素之间的逻辑关系,它既可以链式存储,又可以顺序存储,故属于逻辑结构。
链式存储设计时,各个不同结点的存储空间可以不连续,但结点内的存储单元地址必须连续。
数据的逻辑结构是从面向实际问题的角度出发的,只采用抽象表达方式,独立于存储结构,数据的存储方式有多种不同的选择;而数据的存储结构是逻辑结构在计算机上的映射,它不能独立于逻辑结构而存在。
1.2算法和算法评价
1.2.1算法的基本概念
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
一个算法应该是问题求解步骤的描述。
1.2.2算法的五个重要特征
(1)有穷性
一个算法必须重在执行有穷步之后结束,且每一步都可在有穷时间内完成。
(2)确定性
算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。
(3)可行性
算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
(4)输入
0个或多个输入
(5)输出
1个或多个输出
1.2.3设计算法考虑的目标
正确性
可读性
健壮性
高效率与低存储量的需求
1.2.4算法效率的度量
算法效率的度量是通过时间复杂度和空间复杂度来描述的。
(于 2023-04-02 10:53:15 发布)