0
点赞
收藏
分享

微信扫一扫

Data Sructure and editor ...

Data Sructure and editor ..._数据


程序=数据结构+算法

研究对象:非数值运算程序设计中的操作对象,以及对象之间关系

数据结构:数据元素及数据元素之间的关系

Data Sructure and editor ..._数据_02


抽象数据类型的形式定义:(D S P)

D 数据对象  

S是D上的关系集  

P是对D的基本操作集


格式:

ADT 抽象数据对象类型名{

D:<数据对象>

S:<数据关系>

P:<基本操作>

}ADT 抽象数据对象类型名


//定义一个圆

ADT Circle{

D={r,x,y|r,x,y均为实数}

R={<r,x,y>|r是半径,<x,y>是圆心坐标}

Circle(&C,r,x,y}//构造一个圆//返回参数要加上&

double Area(C)//求圆的面积

double Circumfenrence(C)//求圆的周长

} ADT Circle


//定义复数

ADT Complex{

D={r1,r2|r1,r2都是实数}

S={<r1,r2>|r1是实部,r2是虚部}

assign(&C,v1,v2)//构造复数C

destroy(&C)//销毁复数C

}ADT Complex



算法(类C语言)

//预定义常量及类型


//函数结果状态代码

#define OK 1

#define Error 0

#define OVERFLOW -2

//Status 是函数返回值类型,值是函数结果状态代码

typedef int Status;//typedef描述存储结构,数据元素类型约定为ElemType,自行定义


//算法格式

函数类型 函数名

{

//算法说明

语句序列

}//函数名


//结束语句

return 表达式;

return;

case/break


//输入输出语句

//cin>>变量1...>>变量n;

//cout<<表达式1<<...<<表达式n;


//定义复数

ADT Complex{

D={r1,r2|r1,r2都是实数}

S={<r1,r2>|r1是实部,r2是虚部}

assign(&C,v1,v2)//构造复数C

destroy(&C)//销毁复数C

}ADT Complex


//构造复数

typedef struct{ 

float realpart; //实部

float imagpart; //虚部

}Complex


//复数实现部分

void Creat(&Complex C,float x,float y)

{//构造复数

C.realpart=x;

C.imagepart=y;

}

float GetReal(Complex C)//取复数x+yi的实部

{

return C.realpart;

}

float Getimage (Complex C)//取复数x+yi的虚部

{

return C.imagepart;

}

Complex Add(Comlpex C1,Complex C2)//求复数C1+C2

{

Complex sum;

sum.realpart=C1.realpart+C2.realpart;

sum.imagepart=C1.imagepart+C2.imagepart;

return sum;

}


算法特性:

  1. 有穷性--在规定时间内完成

  2. 确定性--不会产生二义性

  3. 可行性--有限次

  4. 输入--有0个或多个输入

  5. 输出--有1个或多个输出


评价算法优劣的标准:

  1. 正确性Correctness

  2. 可读性Readablility

  3. 健壮性Robustness

  4. 高效性Efficiency


算法的时间复杂度:......(wait......)


























举报

相关推荐

0 条评论