精华内容
下载资源
问答
  • 抽象数据类型概念
    千次阅读
    2018-12-06 19:10:33

    数据类型与抽象数据类型的异同
    首先数据结构定义为一个二元组 Data_Stucture(D,S),即两个集合,D是数据元素的集合,而S是数据元素之间或多个关系的集合
    抽象数据类型其实本质上就是数据类型,涉及数据的存储以及如何用存储来反映数据元素之间的关系,它定义的为一个三元组(D,S,P),P是定义的一组针对存储的数据操作(如插入,删除,排序等).所以D是元素的集合,而S表示的这些元素之间关系的集合,而P表示的是对这些数据进行操作的集合
    抽象数据类型本质上和数据类型是一个概念,但是其特征是使用与实现分离,实行封装和信息
    隐蔽,(独立于计算机)

    注意区分数据类型以及抽象数据类型
    多行数据类型这种数据类型我们在这不做深入的了解,只需要知道它是值的成分不确定的数据类型
    抽象数据类型如何表示和实现
    抽象数据类型可以使用固有的数据类型来进行实现,关于具体实现的步骤,我们在后面的博客中做详细的解答

    更多相关内容
  •  在本文中,我们将考察Java中的数据类型,但是我们将介绍抽象数据类型(ADT)的概念。我们还将通过介绍Java Collections Framework(Java 集合架构)来学习Java定义的一些ADT。 ADT 一个ADT是一个仅由保存的...
  • 实现抽象数据类型的定义(C语言)

    千次阅读 2022-04-11 16:49:49
    实现抽象数据类型的定义(C语言) 1、复数的实现 步骤: a>定义复数结构体 b>构造初始化复数结构体 c>编写函数 d>主函数测试 #include <stdio.h> //用typedf关键字把struct Complex起了个名字...

    实现抽象数据类型的定义(C语言)

    1、复数的实现

    步骤:

    a>定义复数结构体

    b>构造初始化复数结构体

    c>编写函数

    d>主函数测试

    #include <stdio.h>
    
    //用typedf关键字把struct Complex起了个名字交complex
    typedef struct Complex {
        float realPart;//实部
        float imagePart;//虚部
    } complex;
    
    complex assign(float real, float image) {//类似于Java的构造方法
        //构造一个复数
        complex c;
        c.realPart = real;
        c.imagePart = image;
        return c;
    }
    
    //可忽略
    /*float getReal(struct Complex C) {//类似于get方法
        //取复数C=x+yi的实部
        return C.realPart;
    }
    
    float getImage(struct Complex C) {
        //取复数C=x+yi的虚部
        return C.imagePart;
    }*/
    
    //求两个复数c1和c2的和sum
    struct Complex add(struct Complex c1, struct Complex c2) {
        struct Complex sum;
        sum.realPart = c1.realPart + c2.realPart;
        sum.imagePart = c1.imagePart + c2.imagePart;
        return sum;
    }
    
    //求两个复数c1和c2的差minus
    struct Complex minus(struct Complex c1,struct Complex c2){
        struct Complex minus;
        minus.realPart = c1.realPart - c2.realPart;
        minus.imagePart = c1.imagePart - c2.imagePart;
        return minus;
    }
    
    //主函数
    int main(){
        complex c1,c2,c3,c4;
        c1= assign(1.0,2.0);
        c2= assign(3.0,5.0);
        c3= add(c1,c2);
        c4= minus(c1,c2);
        printf("c1+c2的和:(%.1f)+(%.1f)i\n",c3.realPart,c3.imagePart);
        printf("c1+c2的差:(%.1f)+(%.1f)i\n",c4.realPart,c4.imagePart);
    }
    

    2、圆的定义的实现

    步骤:

    a>定义园结构体

    b>构造初始化园结构体

    c>编写函数

    d>主函数测试

    typedef struct{
    	double r;
    	double x,y,p=3.14;
    }Circle;
    
    Circle cir(double R,double X,double Y){
    	Circle C;
    	C.r=R;
    	C.x=X;
    	C.y=Y;
    	return C;
    } 
    
    double area(Circle C){
    	double a=C.p*(C.r*C.r);
    	return a;
    }
    double circumference(Circle C){
    	double c=2*C.p*C.r;
    	return c;
    }
    
    int main(){
    	Circle z1;
    	double z2,z3;
    	z1=cir(1.0,1.0,1.0);
    	z2=area(z1);
    	z3=circumference(z1);
    	printf("圆的半径R:%.1f\n坐标轴X:%.1f\tY:%.1f\n",z1.r,z1.x,z1.y);
    	printf("圆的面积:%5.2f\n",z2);
    	printf("圆的周长:%5.2f\n",z3);
    	return 0;
    }
    

    3.小结

    抽象数据类型的概念与面向对象方法的思想是一致的。抽象数据类型独立于具体实现,将数据和操作封装在一起,使得用户程序只能通过抽象数据类型定义的某些操作来访问其中的数据,从而实现了信息隐藏。在C++中,我们可以用类的声明表示抽象数据类型,用类的实现来实现抽象数据类型。因此,C++中实现的类相当于数据的存储结构及其在存储结构上实现的对数据的操作。

    展开全文
  • 抽象数据类型 抽象数据类型=逻辑结构+抽象运算 抽象数据类型暂不考虑计算机的具体存储结构和运算的具体实现。 抽象数据类型实质上,就是在描述问题本身(与计算机无关)。 目标:在不涉及具体的,和计算机系统相关...

    数据类型
    数据类型是一个值的集合和定义在此集合上的一组操作的总称。
    例如c语言中的整型,浮点型,他们的取值范围不同,进行运算时所遵循的规范也不同
    抽象数据类型
    抽象数据类型=逻辑结构+抽象运算
    抽象数据类型暂不考虑计算机的具体存储结构和运算的具体实现。
    抽象数据类型实质上,就是在描述问题本身(与计算机无关)。
    目标:在不涉及具体的,和计算机系统相关的细节情况下,优先理解问题本身,在此基础上,实现用计算机求解问题的过程。
    ADT <抽象数据类型名>{
    数据对象:<数据对象的定义>
    数据关系:<数据关系的定义>
    基本操作:<基本操作的定义>
    }
    我们可以认为抽象数据类型是包含着数据类型的,也就是说,抽象数据类型是一个更大的概念,例如:
    在定义一个学生类型的抽象数据类型时,学生对象既包含整型的年龄,身高,又包含char类型的姓名,这时,我们就可以用一个结构体定义这个学生类型
    struct Student {
    char sno; //学号
    int age; //年龄
    … …
    }
    这里,Student是一个抽象数据类型,而里面的int,char类型又是不同的数据类型

    展开全文
  • java抽象数据类型

    千次阅读 2021-02-12 21:50:32
    在介绍抽象数据类型之前我们先介绍一下数据类型的基本概念。数据类型(data type)是一组性质相同的数据元素的集合以及加在这个集合上的一组操作。例如Java 语言中就有许多不同的数据类型,包括数值型的数据类型、字符...

    抽象数据类型

    抽象数据类型是描述数据结构的一种理论工具。在介绍抽象数据类型之前我们先介绍一

    下数据类型的基本概念。

    数据类型(data type)是一组性质相同的数据元素的集合以及加在这个集合上的一组操

    作。例如Java 语言中就有许多不同的数据类型,包括数值型的数据类型、字符串、布尔型

    等数据类型。以Java 中的int 型为例,int 型的数据元素的集合是[-2147483648,2147483647]

    间的整数,定义在其上的操作有加、减、乘、除四则运算,还有模运算等。

    定义数据类型的作用一个是隐藏计算机硬件及其特性和差别,使硬件对于用户而言是透

    明的,即用户可以不关心数据类型是怎么实现的而可以使用它。定义数据类型的另一个作用

    是,用户能够使用数据类型定义的操作,方便的实现问题的求解。例如,用户可以使用Java

    定义在int 型的加法操作完成两个整数的加法运算,而不用关心两个整数的加法在计算机中

    到底是如何实现的。这样不但加快了用户解决问题的速度,也使得用户可以在更高的层面上

    考虑问题。

    与机器语言、汇编语言相比,高级语言的出现大大地简便了程序设计。但是要将解答问

    题的步骤从非形式的自然语言表达到形式化的高级语言表达,仍然是一个复杂的过程,仍然

    要做很多繁杂琐碎的事情,因而仍然需要抽象。

    对于一个明确的问题,要解答这个问题,总是先选用该问题的一个数据模型。接着,弄清

    该问题所选用的数据模型在已知条件下的初始状态和要求的结果状态,以及隐含着的两个状

    态之间的关系。然后探索从数据模型的已知初始状态出发到达要求的结果状态所必需的运算

    步骤。

    我们在探索运算步骤时,首先应该考虑顶层的运算步骤,然后再考虑底层的运算步骤。

    所谓顶层的运算步骤是指定义在数据模型级上的运算步骤,或叫宏观运算。它们组成解答问

    题步骤的主干部分。其中涉及的数据是数据模型中的一个变量,暂时不关心它的数据结构;

    涉及的运算以数据模型中的数据变量作为运算对象,或作为运算结果,或二者兼而为之,简

    称为定义在数据模型上的运算。由于暂时不关心变量的数据结构,这些运算都带有抽象性质,

    不含运算的细节。所谓底层的运算步骤是指顶层抽象的运算的具体实现。它们依赖于数据模

    型的结构,依赖于数据模型结构的具体表示。因此,底层的运算步骤包括两部分:一是数据

    模型的具体表示;二是定义在该数据模型上的运算的具体实现。我们可以把它们理解为微观

    运算。于是,底层运算是顶层运算的细化,底层运算为顶层运算服务。为了将顶层算法与底

    层算法隔开,使二者在设计时不会互相牵制、互相影响,必须对二者的接口进行一次抽象。

    让底层只通过这个接口为顶层服务,顶层也只通过这个接口调用底层的运算。这个接口就是

    抽象数据类型。

    抽象数据类型(abstract data type, 简称ADT)由一种数据模型和在该数据模型上的一

    组操作组成。

    抽象数据类型包括定义和实现两个方面,其中定义是独立于实现的。抽象数据类型的定

    义仅取决于它的逻辑特性,而与其在计算机内部的实现无关,即无论它的内部结构如何变化,

    只要它的逻辑特性不变,都不会影响到它的使用。其内部的变化(抽象数据类型实现的变化)

    只是可能会对外部在使用它解决问题时的效率上产生影响,因此我们的一个重要任务就是如

    何简单、高效地实现抽象数据类型。很明显,对于不同的运算组,为使组中所有运算的效率

    都尽可能地高,其相应的数据模型具体表示的选择将是不同的。在这个意义下,数据模型的

    具体表示又依赖于数据模型上定义的那些运算。特别是,当不同运算的效率互相制约时,还

    必须事先将所有的运算的相应使用频度排序,让所选择的数据模型的具体表示优先保证使用

    频度较高的运算有较高的效率。

    我们应该看到,抽象数据类型的概念并不是全新的概念。抽象数据类型和数据类型在实

    质上是一个概念,只不过是对数据类型的进一步抽象,不仅限于各种不同的计算机处理器中

    已经实现的数据类型,还包括为解决更为复杂的问题而由用户自定义的复杂数据类型。例如

    高级语言都有的“整数”类型就是一种抽象数据类型,只不过高级语言中的整型引进实现了,

    并且实现的细节可能不同而已。我们没有意识到抽象数据类型的概念已经孕育在基本数据类

    型的概念之中,是因为我们已经习惯于在程序设计中使用基本数据类型和相关的运算,没有

    进一步深究而已。

    抽象数据类型一方面使得使用它的人可以只关心它的逻辑特征,不需要了解它的实现方

    式。另一方面可以使我们更容易描述现实世界,使得我们可以在更高的层面上来考虑问题。

    例如可以使用树来描述行政区划,使用图来描述通信网络。

    根据抽象数据类型的概念,对抽象数据类型进行定义就是约定抽象数据类型的名字,同

    时,约定在该类型上定义的一组运算的各个运算的名字,明确各个运算分别要 有多少个参

    数,这些参数的含义和顺序,以及运算的功能。一旦定义清楚,人们在使用时就可以像引用

    基本数据类型那样,十分简便地引用抽象数据类型;同时,抽象数据类型的实现就有了设计

    的依据和目标。抽象数据类型的使用和实现都与抽象数据类型的定义打交道,这样使用与实

    现没有直接的联系。因此,只要严格按照定义,抽象数据类型的使用和实现就可以互相独立,

    互不影响,实现对它们的隔离,达到抽象的目的。

    为此抽象数据类型可以使用一个三元组来表示:

    ADT = (D, S, P)

    其中D 是数据对象,S 是D 上的关系集,P 是加在D 上的一组操作。

    在定义抽象数据类型时,我们使用以下格式:

    ADT 抽象数据类型名{

    数据对象:

    数据关系:

    基本操作:

    }

    展开全文
  • 数据结构、数据类型、抽象数据类型之间的区别

    千次阅读 多人点赞 2019-11-03 20:15:37
    数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。) 逻辑结构指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。包括: ...
  • 什么是抽象数据类型

    千次阅读 2021-04-29 23:15:13
    抽象数据类型概念3.抽象数据类型的描述 前言 抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想和方法,也是一种用于设计和实现程序模块的有效技术。ADT的基本思想是抽象,或者说是数据...
  • 数据结构抽象数据类型及面向对象概念数据结构的抽象层次.ppt
  • 抽象数据类型与面向对象概念.pptx
  • 数据结构抽象数据类型及面向对象概念数据结构的抽象层次PPT学习教案.pptx
  • C语言之抽象数据类型(四十七)

    千次阅读 2022-03-15 13:38:38
    2.抽象数据类型(Abstract Data Type) 定义:抽取实际问题的本质。 指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。 具体分为:数据对象、数据对象关系的集合、数据对象基本...
  • 人们在使用计算机解决客观世界中存在的具体问题时,通常过程如下:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上... 数据结构主要与在上述过程中从建立概念模型到实现模型转化并为后续程序设...
  • 数据结构的基本概念 一、基本概念与术语 1.数据 数据是信息的载体,是计算机程序加工的原料。 2.数据元素 数据元素是数据的基本单位,通常作为一个整体进行考虑,一个数据元素由若干数据项组成。 3.数据对象 数据...
  • 什么是数据结构抽象数据类型及面向对象概念模板算法定义.pdf
  • 5-抽象数据类型(ADT)

    千次阅读 多人点赞 2018-05-25 11:40:53
    1. 以数据为核心的思维   在现实中计算机能够解决非常多的问题,如图1所示,可以用计算机去实现一个GIS地理信息系统,也可以实现一个电子病历系统,或者实现一个计算机管理资源的图形化界面等。包括现在我们使用...
  • 如何理解数据结构中的抽象数据类型

    万次阅读 多人点赞 2018-09-04 18:49:23
    抽象数据类型的标准格式 ADT 抽象数据类型名 { Data: 数据元素之间逻辑关系的定义; Operation: 操作1; 操作2; ... } 什么是抽象数据类型抽象数据类型(Abstract Data Type,ADT)是指一个数学...
  • 抽象数据类型

    千次阅读 2016-10-19 18:53:19
    一、抽象数据类型:是指一个数学模型以及定义在此数学模型上的一组操作。 二、ADT有两个重要的特征:1、数据抽象:用ADT描述程序处理的实体时,强调的是其本质特征、其所能完成的功能以及它和外部用户的接口(即外界...
  • 抽象数据类型的实例

    千次阅读 2020-03-20 15:21:38
    重新学习数据结构,主要了解了一些关于数据结构的一些相关的概念; 数据结构是一种带结构的数据集合;它包括逻辑结构还有存储结构,然后学习了一下数据类型的表示以及实现...抽象数据类型的定义仅仅取决于它的一组逻...
  • 数据结构基本概念3.1 数据元素、数据项3.2 数据结构、数据对象4.数据结构的三要素4.1 逻辑结构4.1.1 集合4.1.2 线性结构4.1.2 树形结构4.1.4 图结构4.2 数据的物理结构(存储结构)4.2.1 顺序存储4.2.2 链式存储...
  • 数据结构、数据类型和抽象数据类型,这三个术语在字面上既不同又相近,反映出它们在含义上既有区别又有联系。 数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据...
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助...一、基本概念和术语? 1.数据 数据是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入到计算机处理的符号集合。 (数据不..
  • 常见抽象数据类型

    千次阅读 2019-03-27 15:48:25
    重要概念 : 节点 根节点、内部节点、外部节点(叶子节点) 父亲节点、兄弟节点、孩子节点(左孩子、右孩子) 边 一对父子节点(u,v) 路径 指一系列的节点,其中任意两个连续的节点都是一条边 深度 ...
  • 数据结构之抽象数据类型

    千次阅读 2019-05-12 22:28:09
    抽象数据类型(ADT)概念 以面向对象编程为例,在创建一个对象的时候,要给定这个对象有哪些属性以及行为,并且可以通过一套接口描述说明这个对象用来干什么的,在给定输入的时候,产生相应的结果,并不需要知道其...
  • 抽象数据类型ADT

    千次阅读 2019-06-16 21:52:26
    在介绍抽象数据类型之前我们先介绍一下数据类型的基本概念。 数据类型(data type)是一组性质相同的数据元素的集合以及加在这个集合上的一组操作。例如Java 语言中就有许多不同的数据类型,包括数值型的数据类型、...
  • 图的基本概念及其抽象数据类型

    千次阅读 2017-11-28 10:55:44
    内容是数据结构(java)第四版 中国工信出版集团的部分笔记 图是由顶点集合以及顶点之间关系集合组成的一种数据结构。 无向图中的边没有方向,每条边用顶点间无序对表示(vi,vj)。 有向图的边有方向,...
  • 三个【抽象数据类型抽象数据类型(ADT)一、列表 ADT1. 实现列表ADT的两种数据结构:数组(array-based)和链表(linked list)2. 链表的结构3. 操作:二、栈 ADT1. 插入和删除都在同一个地方(在top),First In ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 356,174
精华内容 142,469
关键字:

抽象数据类型概念