数据结构
1.数据,数据元素,数据项和数据对象
1.数据:
数据是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。
2.数据元素:
数据元素是数据的基本单位,数据元素也称为元素和记录。
3.数据项:
数据项是组成数据元素的,有独立含义的,不可分割的最小单元。
4.数据对象:
数据对象是性质相同的数据元素的集合,是数据的一个子集。
例:学生基本性息表
地址 | 学号 | 姓名 | 性别 | 籍贯 | 专业 |
---|---|---|---|---|---|
0 | 060214201 | 杨阳 | 男 | 安徽 | 计算机 |
50 | 060214202 | 薛林 | 男 | 福建 | 计算机 |
100 | 060214215 | 王诗萌 | 女 | 吉林 | 计算机 |
150 | 060214216 | 冯治涵 | 女 | 山东 | 计算机 |
… | … | … | … | … | … |
数据元素:下面就是一个数据元素。而数据对象就是多个数据元素构成的集合。
50 | 060214202 | 薛林 | 男 | 福建 | 计算机 |
---|---|---|---|---|---|
如50,男等等就是一个数据项。
所以:
数据对象>数据元素>数据项
2.数据结构
数据结构是相互之间存在一种或多种特定关系的数据元素的集合
数据结构包括逻辑结构和存储结构两个层次。
3.抽象数据类型
一般指由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
集体包括三部分:数据对象,数据对象上关系的集合以及对数据对象的基本操作的集合。
定义格式:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
其中数据对象和数据关系的定义采用数学符号和自然语言描述
格式:
基本操作名(参数表)
初始条件:<初始条件描述>
操作结果<操作结果描述>
基本操作有两种参数:
1.赋值参数
2.引用参数以"&"打头,除可提供输入值外,还将返回操作结果
typedef struct{
float Realpart; //实部
float Imagepart; //虚部
}Complex;
void Create(&Complex C,float x,float y){
C.Realpart=x;
C.Imagepart=y;
}
Complex Add(Complex C1,Complex C2){ //基本操作名
Complex sum;
sum.Realpart=C1.Realpart+C2.Realpart;
sum.Imagepart=C1.Imagepart+C2.Imagepart; //基本操作
return sum; //操作结果
}
Complex Sub(Complex C1,Complex C2)
...
...
4.算法和算法分析
1.算法五个特性:
有穷性,确定性,可行性,零或多个输入,一或多个输出。
2.时间复杂度
T(n)=O(f(n))
f(n)为所有语句频度之和。
例:
-
x=1; for(i=1;i<=n;i++) //执行n次 for(j=i;j<=i;j++) //执行i for(k=1;k<=j;k++) //执行j x++; T(n)=O(n^3) x=1; for(i=1;i<=n;i=i*2){ x++; s=0 } 2^f(n)=n T(n)=log n 以2为底
3.空间复杂度
算法所需存储空间的量度即对数据进行操作的辅助存储空间。