抽象数据类型
Posted privilege
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象数据类型相关的知识,希望对你有一定的参考价值。
数据结构的三个方面:
数据的逻辑结构:
线性结构:线性表、栈、队
非线性结构:树形结构、图形结构
数据的存储结构:
顺序存储、链式存储
数据的运算:插入、删除、修改、查找、排序
什么叫数据的逻辑结构?
表示数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
集合结构:仅同属一个集合
线性结构:一对一 线性
树结构:一对多 非线性
图结构:多对多 非线性
什么叫数据的物理结构?
物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。
存储结构详解:
“数据元素”的映像
“关系”的映像
两种不同的存储结构:顺序存储结构、链式存储结构
什么是数据的运算?
在数据的逻辑结构上定义的操作算法。它在数据的存储结构上实现。
最常用的数据运算有5种:插入,删除,修改,查找,排序
抽象 数据类型(Abstract Data Type)
数据:数据是指能够输入到计算机当中,且能被计算机接受和处理的,字符,图形,图像,音频,视频等的总称。
数据类型:是一个值的集合和定义在该值集上的一组操作的总称。
int、string、float、double
这些数据类型均包含两个内容:
一是数据对象集,它确定了一个取值范围,就像书店里的每一本书一样。
另一个是作用域数据对象集上的操作集,也就是仅作用于相应的数据元素集合上,就像从书架上找书和向书架上插入新书这些操作仅对应于相应书架一样。
这两个内容在c语言中是独立处理的,而在面向对象程序设计语言中,则是将两者封装在一起,称为类。
抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的服务(或称操作)。
它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。
定义抽象数据类型“复数”
ADT Complex
数据对象:
D e1,e2 e1,e2∈RealSet
数据关系:
R1 <e1,e2> | e1是复数的实数部分,|e2是复数的虚数部分
基本操作:
AssignComplex(&Z,v1,v2)
操作结果:构造复数Z,其实部和虚部分别被赋以参数v1和v2的值
DestroyComplex(&Z)
操作结果:复数Z被销毁。
GetReal(Z,&realPart)
初始条件:复数已存在。
操作结果:用realPart返回复数Z的实部值。
GetImag(Z,&ImagPart)
初始条件:复数已存在
操作结果:用ImagPart返回复数Z的虚部值。
Add(z1,z2,&sum)
初始条件:z1,z2是复数。
操作结果:用sum返回两个复数z1,z2的和值。
抽象数据类型可以通过固有的数据类型来表示和实现
整型、字符型、浮点型
以上是关于抽象数据类型的主要内容,如果未能解决你的问题,请参考以下文章
抽象数据类型(ADT)和面向对象编程(OOP)3.3 抽象数据类型