数据结构第一章
概述
一、数据结构
1、定义:是相互之间存在一种或多种特定关系的数据元素的集合。即数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等等的学科。
二、数据与数据结构
1、数据是计算机操作对象的总称
2、数据元素是数据(集合)中的一个"个体",是数据结构中讨论的基本单位。
3、数据结构是相互之间存在着某种逻辑关系的数据元素的集合。
4、数据元素都不是孤立存在的,元素之间的关系叫做结构,通常有四种基本结构:集合、线性结构(一对一关系)、树形结构(一对多关系)、图状结构或者网状结构(多对多关系)。
5、在计算机中两种不同的表示方式:顺序映像和链式映像。分别对应的存储结构为:顺序存储结构和链式存储结构。数据元素之间的逻辑关系又称为逻辑结构,数据结构在计算机中的表示又称为映像称为数据的物理结构,也是存储结构。包括数据元素的表示和关系的表示。
6、顺序映像的特点:借助元素在存储器中相对的位置来表示元素之间的逻辑关系
7、非顺序映像的特点:借助指示元素存储地址的指针表示数据元素之间的逻辑关系
8、任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的存储结构
三、数据类型
1、是一个值的集合和定义在这个值上的一组操作的总称。
四、抽象数据类型(ADT)
是指一个数学模型以及定义在该模型上的一组操作
五、算法和算法的度量
1、算法的特性:
有穷性、确定性、可行性、有输入、有输出。
2、如何计算一个算法的时间复杂度
首先,算法的执行时间为:
原操作(i)的执行次数*原操作(i)的执行时间
六、练习
答案:
void polyvalue(){
float co//系数
printf("Input number of terinc:");
scanf("%d",&n);
printf("Input value of x:");
scanf("%f",&x);
printf("Input the %d coefficients from a0 to a%d:\n",n+1,n);
xp=1;//xp用于存放x的i次方
sum=0;
for(i=0;i<=n;i++){
scanf("%f",&co);
sum+=xp*(co);
xp*=x;}
printf("Value is:%f",sum);
}