数据结构概念
数据:数据是信息的载体,是描绘客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合
数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由诺干数据项组成,数据项是构成数据元素的不可分割的最小单元
数据对象:是具有相同性值的数据元素的集合,是数据的一个子集
数据类型:是一个值的集合和定义
1)原子类型;其值不可再分的数据类型,如:bool和int类型
2)结构类型;其值可有再分解多个成分的数据类型
3)抽象数据类型;抽象数据组织及与之相关操作
数据结构:是相互之间存在一种或多个特定关系的数据元素的集合
数据结构的三要素
数据的逻辑结构:逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据
数据结构包括:
1)集合结构:结构中的数据元素之间除“同属一个集合”外,别无其他关系
2)线性关系:结构中数据元素之间只存在一对一的关系,除了第一个元素,所有元素都有唯一前驱,除了最后一个元素,所有元素都有唯一前驱
3)树形结构:结构中数据元素之间存在一对多的关系
4)图形结构:数据元素之间是多对多的关系
数据的存储结构(物理结构):存储结构是指数据结构在计算机中表示(又称映像)
存储结构包括:
1)顺序存储:把逻辑上相邻的元素储存在物理位置也相邻的存储单元中,元素之间的关系有存储单元的邻接关系来体现
2)链式存储:逻辑上相邻的元素在物理位置是可以不相邻,借助指示元素储存地址的指针来表示元素之间的逻辑关系
3)索引存储:在储存元素信息的同时还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是(关键字,地址)
4)散列存储:根据元素的关键字直接计算出该元素存储地址,又称哈希存储
数据的运算:施加在数据上的运算包括运算的定义何实现。
1)运算定义:是针对逻辑结构的,指出运算的功能
2)运算的实现:是针对存储结构的,指出的具体操作步骤
算法的基本概念
程序=数据结构+算法
算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作
算法的特性:
1)有穷性:一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成
2)确定性:算法中每条指令必须有确定的含义,对于相同的输入只能得到想太多输出
3)可行性:算法中描述的操作都可以通过已经实现的基本元素执行有限次来实现
4)输入:一个算法有零个或多个输入,这些输入取自与某个特定的对象的集合
5)输出:一个算法有零个或多个输出,这些输出是与输入有这某个特定关系的量
算法的复杂度
复杂度分为时间复杂度和空间复杂度
时间复杂度T(n)=O(n) 算法执行的时间
空间复杂度S(n)=O(n) 算法消耗的空间