数据结构与算法——基本概念和术语

数据类型(Data Type)

使用高级语言时,必须对每个变量、常量或表达式,明确所属的数据类型。

在C语言中,一些基本数据结构可以用数据类型来实现,如数组、字符串等。

而另外一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型来表示。

定义:数据类型是一组性质相同(取值范围相同)的值的集合以及定义这个值集合上的一组操作的总称。

抽象数据类型(Abstract Data Type,ADT)

是由用户定义,从问题抽象出数据模型(逻辑结构) 

还包括定义在数据模型上的一组抽象运算(相关操作)

不考虑计算机内的具体存储结构与运算的具体实现算法

抽象数据类型的形式定义

抽象数据类型可用(D,S,P)三元组表示。

D是数据对象;

S是D上的关系集;

P是对象D的基本操作集。

抽象数据类型定义格式:

ADT 抽象数据类型名

{数据对象:<数据对象的定义>

 数据关系:<数据关系的定义>

 基本操作:<基本操作的定义>

}ADT 抽象数据类型名

抽象数据类型的表示与实现

用C语言实现抽象数据类型

用已有的数据类型定义描述它的存储结构

用函数定义描述它的操作

接下来的文章,我们用类C语言(介于伪码和C语言之间)作为描述工具(上机时要用具体的语言实现,如C或C++等)。

使用C语言定义一个抽象数据类型:

typedef struct
{
    float realpart;//实部
    float imagpart;//虚部
}Complex           //复数抽象类型

void assign(Complex *A,float real, float imag)
{
    A-> realpart = real;
    A->imagpart = imag;
}

void add(Clmplex *c,Clmplex A,Clmplex B)
{
    c->realpart = A.realpart + B.realpart;
    c->imagpart = A.imagpart + B.imagpart;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarrett_Zheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值