数据结构:一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系与操作等的学科
数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合
数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑与处理
数据类型:是一个值的集合与定义在此集合上一组操作的总称
包括原子类型:其值不可在分的数据类型结构类型:其值可以在分解为若干成分的数据类型抽象数据类型:ADT,指一个数学模型以及定义在该模型上的一组操作
通常用数据对象、数据关系、基本操作集这样的三元组来表示
有数据抽象与数据封装两个重要特性
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
包括(逻辑结构、存储结构与数据的运算)
数据的逻辑结构:指数据元素之间的逻辑关系
包括集合、线性结构、树形结构、图状结构或网状结构
数据的存储结构:指数据结构在计算机中的表示,也成物理结构
主要有顺序存储、连接存储、索引存储、散列存储
数据的运算:施加在数据上的运算包括运算的定义与实现
定义是针对逻辑结构,指出运算的功能
实现是针对存储结构的,指出运算的具体操作步骤
算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作
有5个重要特性(有穷性、确定性、可行性、输入、输出)算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求
时间复杂度:一般情况下,算法中基本操作的重复次数是问题规模n的某个函数f(n),算法的时间度量记作T(n)=O(f(n)),表示随着问题规模n的增大,算法执行时间增长率与f(n)的增长率相同,称为时间复杂度
空间复杂度:S(n)定义为该算法所耗费的村粗空间,是问题规模n的函数
第二章:线性表线性表:具有相同数据类型的n(n>=0)个数据元素的有限序列
线性表的顺序存储又称顺序表;链式存储又称单链表