精华内容
下载资源
问答
  • 抽象数据类型定义的格式为
    千次阅读
    2019-08-29 16:22:23

    类型名称:二叉树
    数据对象集:一个有穷的结点集合。
    若不为空,则由根结点和其左、右二叉子树组成。
    操作集: BT ∈ BinTree, Item ∈ElementType,重要操作有:
    1、Boolean IsEmpty( BinTree BT ): 判别BT是否为空;
    2、void Traversal( BinTree BT ):遍历,按某顺序访问每个结点;
    3、BinTree CreatBinTree( ):创建一个二叉树。

    常用的遍历方法有:

    • void PreOrderTraversal( BinTree BT ):先序----根、左子树、右子树;
    • void InOrderTraversal( BinTree BT ): 中序—左子树、根、右子树;
    • void PostOrderTraversal( BinTree BT ):后序—左子树、右子树、根
    • void LevelOrderTraversal( BinTree BT ):层次遍历,从上到下、从左到右
    更多相关内容
  • 实现抽象数据类型定义(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++中实现的类相当于数据的存储结构及其在存储结构上实现的对数据的操作。

    展开全文
  • 抽象数据类型案例

    千次阅读 多人点赞 2021-11-16 21:28:55
    数据结构 数据结构-第一章 数据结构-第一章-抽象数据类型案例数据结构...抽象数据类型定义举例: 抽象数据类型 (ADT)定义举例:Circle的定义 ADT 抽象数据类型名{ Data 数据对象的定义 数据元素之间的逻

    数据结构


    数据结构-第一章

    数据结构-第一章-抽象数据类型案例

    前言


    一、介绍

    • 抽象数据类型(ADT)是指一个数学模型以及定义在该模型上的一组操作。其定义取决于它的一组逻辑特性,而其在计算机内部如何表示和实现无关,意思就是不论其内部结构如何变化,只要其数学特性不变,都不影响其外部的使用。

    • 抽象数据类型定义举例:

    抽象数据类型 (ADT)定义举例:Circle的定义
    
    ADT 抽象数据类型名{
    	Data
    	  数据对象的定义
    	  数据元素之间的逻辑关系的定义
    	Operation
    	  操作1
    	     初始条件
    		 操作结果描述
    	  操作2
    		......
    	  操作n
    	    ......
    
    }ADT 抽象数据类型名
    

    在这里插入图片描述

    二、c++实现

    用代码实现为:

    #include<iostream>
    using namespace std;
    #define PI 3.14
    
    
    
    struct Circle
    {
    	double m_r;//半径
    	void set_r(double R)
    	{
    		m_r = R;
    	}
    	double get_r()
    	{
    		return m_r;
    	}
    
    };
    
    double Area(Circle &c)
    {
    	double acer = PI*c.get_r()*c.get_r();
    	return acer;
    }
    
    double Circleference(Circle &c)
    {
    	double C = 2 * PI*c.get_r();
    	return C;
    }
    int main()
    {
    	Circle c;
    	c.set_r(10);
    	double acer = Area(c);
    	cout << "面积为:" << acer << endl;
    	double C = Circleference(c);
    	cout << "周长为:" << C << endl;
    	system("pause");
    	return 0;
    }
    

    经初步测试,代码无误。

    • 这里我采用的是结构体去做的,实际上还能用类去做。

    总结

    期待大家和我交流,留言或者私信,一起学习,一起进步!

    展开全文
  • 什么是抽象数据类型

    千次阅读 2021-04-29 23:15:13
    什么是抽象数据类型?前言1.数据类型和数据构造2.抽象数据类型的概念3.抽象数据类型的描述 前言 抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想和方法,也是一种用于设计和实现程序...


    前言

    抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想和方法,也是一种用于设计和实现程序模块的有效技术。ADT的基本思想是抽象,或者说是数据抽象(与函数定义实现的计算抽象或过程抽象对应)。

    1.数据类型和数据构造

    数据类型是程序设计领域最重要的基本概念之一。在程序里描述的、通过
    计算机去处理的数据,通常都分属不同的类型,例如整数或浮点数等。每个类型包含一集合法的数据对象,并规定了这些对象的合法操作。各种编程语言都提供了一组数据类型,为每个内置类型提供了一批操作。

    以Python为例,它提供了基本类型包括逻辑类型bool、数值类型int和float等、字符串类型等等。开发程序时候,应该更具需要选择合适的数据类型。

    但是无论编程语言提供了多少内置类型,在处理较为复杂的问题时,程序员或早或晚都会遇到一些情况,此时各种内置类型都不能满足或者不适合于自己的需要。在这种情况下,编程语言提供的组合类型有可能帮助解决一些问题。例如,Python为数据的组合提供了list、tuple、set、dict等结构,编程时可以利用他们把一组相关数据组织在一起,构成一个数据对象,作为整体存储、传递和处理。

    2.抽象数据类型的概念

    抽象数据类型的基本思想是把数据定义为抽象的对象集合,只为它们定义可用的合法操作,并不暴露其内部实现的具体细节,不论是数据的表示细节还是操作的实现细节。当然,要使用一种对象,首先需要能构造这种对象,而后能操作它们。抽象数据类型提供的操作应该满足这些要求。一个数据类型的操作通常可以分为三类:

    1. 构造操作:这些操作基于一些已知信息,产生出这种类型的一个新对象。例如,基于一对整数产生出一个有理数对象。
    2. 解析操作:这种操作从一个对象取得有用的信息,其结果反应了被操作对象的某方面特性,单结果并不是本类型的对象。例如:坑你需要有两个操作,分别从一个有理数获取其分子或者分母,操作的结果应该是整数(整数类型的对象)。
    3. 变动操作:这类操作修改被操作对象的内部状态。例如对一个银行账户对象,其类型就应该提供查看余额和修改余额的操作等。经过一次变动操作,对象还是原来的账户,仍然表示原来的银行客户的有关信息,但是对象内部记录的存款余额改变了,反映了实际客户账户的余额变动。

    当然,一个抽象数据类型还应该有一个名字,用于代表这个类型。

    作为数据类型,特别是比较复杂的数据类型,有一个很重要的性值称为变动性,表示该类型的对象在创建之后是否允许变化。如果某个类型只提供上面的第1和第2类操作,那么该类型的对象在创建之后就不会变化,永远处于一个固定的状态。这样的类型称为不变数据类型,这种类型的对象成为不变对象。对于这种类型,在程序里只能(基于其他信息或者已有对象)构造新对象或者取得已有对象的特性,不能修改已建立的对象。如果提供了第3类操作,对该类型的对象执行这种操作后,虽然对象依旧,但其内部状态已经改变。这样的数据类型称为可变数据类型,其对象称为可变对象

    例如,Python中对str、tuple、forzenset类型只提供了前两类操作,因此其是一个不可变数据类型。对list,set,dict等就是可变数据类型。在编程中设计或定义抽象数据类型时,也要根据情况,决定是将其定义为不变数据类型或者是可变数据类型。

    3.抽象数据类型的描述

    定义一个抽象数据类型,目的是要定义一类计算对象,它们具有某些特定的功能,可以在计算中使用。这类对象的功能体现为一组可以对它们使用的操作。当然,还需要为这一抽象数据类型确定一个类型名。

    下面为抽象数据类型引进一种描述方式,其形式体现了抽象数据类型的主要特点。写出这种描述的过程本身也很有意义,因为他能帮助开发者理清楚对希望定义的数据类型的想法,清晰的表述出各方面的形式要求(如操作的名字、参数的个数和类型等)和功能要求(希望这个操作完成什么样计算,或产生什么效果等)。

    现在考虑一个简单的有理数抽象数据类型,有如下描述:
    在这里插入图片描述
    这里用特殊名字ADT表示这是一个抽象数据类型的描述,随它之后给出被定义类型的名字。ADT定义的主要部分描述一组操作,每个操作的描述由两部分组成:首先是用标识符给出操作名和操作的参数,随后用类似Python注释的形式给出操作的功能描述。另外注意,在描述操作的参数时,可以考虑在参数名前写一个类型名,表示这个参数应该具有的类型;也可以省略,通过文字描述说明。

    具体到上面的抽象数据类型,其名字时Rational,其中提供了7个操作。第一个操作以Rational作为名字,这种形式表示它是一个最基本的构造操作,从其他类型的参数出发构造本类型的操作。随后的几个算数运算也是构造操作,它们基于Rational类型的对象生成Rational类型的新对象。最后两个是解析操作,取得有理数对象的性质(成分)。

    使用抽线数据类型的思想和技术,不但可以描述有理数一类数学类型,也可以描述实际应用中的各种类型。例如,下面描述了一个表示日期的抽象数据类型:
    在这里插入图片描述
    通过上面的两个抽象数据类型的例子,现在总结其中的一些情况:

    • 一个ADT描述由一个头部和按一定格式给出的一组操作描述成。
    • ADT的头部给出类型名,最前面是表示抽象数据类型的关键词ADT。
    • 操作的形式描述给出操作的名字、参数的类型和参数名。在ADT描述中,参数名主要用在解释这个操作的功能的地方(如上面的Python注释形式)。
    • 各种操作的实际功能用自然语言描述,这是一种非形式的说明,主要是为了帮助理解这些操作需要(能够)做什么,以便正确地实现和使用它们。

    在抽象数据类型的描述中,其他方面都比较清晰和严格,用自然语言形式给出的功能描述则不然。自然语言有着天然的非精确性和歧义性,用它写的描述很难精确无误。这种描述的意义需要人去理解,误解是造成错误的最重要根源之一

    ADT是一种思想,也是一种组织程序的技术,主要包括:

    1. 围绕这一类数据定义程序模块,如上面的Rational和Date都是这样的
    2. 模块的接口和实现分离。上面只给出了模块的接口规范,包括模块名、模块提供的各种操作的名字和参数。每个操作还有非形式化的语义说明。
    3. 在需要实现时,从所用的编程语言里选择一套合适的机制,采用合理的技术,实现这种ADT的功能,包括具体的数据表示和操作。
    展开全文
  • C语言之抽象数据类型(四十七)

    千次阅读 2022-03-15 13:38:38
    1.数据类型 ...抽象数据类型定义格式如下: ADT抽象数据类型名( 数据对象:(数据对象的定义〉 数据关系:(数据关系的定义〉 基本操作:(基本操作的定义〉 IADT抽象数据类型名 其中,数据对象和数据关系
  • 抽象数据类型定义(ADT)

    万次阅读 多人点赞 2014-03-16 16:03:56
    一、抽象数据类型定义(ADT) 作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树或图描述遗传关系。 定义:一个数学模型以及定义在该模型上的一组操作。 关键:使用它的人...
  • 数据结构、数据类型、抽象数据类型之间的区别

    千次阅读 多人点赞 2019-11-03 20:15:37
    三者的定义(蓝字可忽略): 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。) 逻辑结构指反映数据...
  • 数据类型: 是一个值的集合和定义在此集合上一组操作的总称。 数据类型有两种:简单型和结构类型。...抽象数据类型(Abstract Datat Type, ADT): 是一个数学模型和定义在此数学模型上一组操作。 ...
  • 第七话:抽象数据类型ADT

    千次阅读 2021-07-27 06:01:07
    我们对已有的数据类型进行抽象,就有了抽象数据...什么有了数据类型,还要有抽象数据类型呢?各个计算机,不管是大型机、小型机、PC、平板电脑、PDA, 甚至智能手机都拥有“整数”类型,也需要整数间的运算,那么整...
  • 5-抽象数据类型(ADT)

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

    千次阅读 2018-03-17 13:06:56
    概念 队列 ( queue ) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。...抽象数据类型 ADT 队列 (Queue) Data 同线性表。元素具有相同的类型,相邻元素具有前驱和后继关系 。 Operation ...
  • 3. 抽象数据类型:是指一个数学模型以及定义在该模型上的一组操作。 数据结构的形式定义为:一个二元组,Data Structure = (D, S)其中D是数据元素的有限集,S是D上关系的有限集。 抽象数据类..
  • 如何理解数据结构中的抽象数据类型

    万次阅读 多人点赞 2018-09-04 18:49:23
    抽象数据类型的标准格式 ADT 抽象数据类型名 { Data: 数据元素之间逻辑关系的定义; Operation: 操作1; 操作2; ... } 什么是抽象数据类型抽象数据类型(Abstract Data Type,ADT)是指一个数学...
  • 如已看过抽象数据类型定义,可直接跳过定义。 抽象数据类似的定义 抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中...
  • 抽象数据类型ADT

    千次阅读 2019-06-16 21:52:26
    抽象数据类型:简单来讲就是 数据元素(不仅限于一般的数据元素)+对其的操作(不太严谨但有助于理解) 抽象数据类型是描述数据结构的一种理论工具。在介绍抽象数据类型之前我们先介绍一下数据类型的基本概念。 ...
  • java数据结构——抽象数据类型

    千次阅读 2019-02-18 12:24:51
    数据得抽象是用抽象数据类型来实现的,ADT是这个集合和定义在这集合上的一组数据操作,它不包括计算机数据存储:隐藏了数据存储结构并且不涉及实现结构的数据类型。 java中抽象数据类型的描述:1.抽象类...
  • 数据类型和抽象数据类型

    千次阅读 2020-02-22 16:31:35
    二、抽象数据类型(ADT) 1.定义:由用户定义的表示应用问题的数据模型,即数据结构以及定义在此结构上的一组运算。 2.特征: (1)数据抽象:用ADT描述程序程序处理的实体时,强调的是其本质特征、其所能完成的功能...
  • 抽象数据类型:复数COMPLEX

    千次阅读 2019-11-05 10:56:06
    抽象数据类型:复数COMPLEX:分别对实部和虚部在结构体进行定义。 ADT COMPLEX{ 数据对象:D={real,image|real∈实数,image∈实数} 数据关系:R={<real,image>} 基本操作: InitComplex(&C) 操作结果:...
  • 数据结构-抽象数据类型

    千次阅读 2017-12-19 14:19:27
    题记:先捂上眼睛,不想算法,不想怎么计算时间复杂度,先刷刷“单纯”的数据结构 抽象数据类型 Abstract Data Type  抽象数据类型定义可以由一种数据结构和定义在其上的一组操作组成,...抽象数据类型定义格式
  • 数据结构的基本概念 一、基本概念与术语 1.数据 数据是信息的载体,是计算机程序加工的原料。...数据结构与数据对象都由数据元素组成,区别在于数据结构注重数据元素间的关系,数据对象注重数据元素中是
  • 数据结构之抽象数据类型

    千次阅读 2019-05-12 22:28:09
    抽象数据类型(ADT)概念 以面向对象编程例,在创建一个对象的时候,要给定这个对象有哪些属性以及行为,并且可以通过一套接口描述说明这个对象用来干什么的,在给定输入的时候,产生相应的结果,并不需要知道其...
  •  数据对象:D={r,i | r,i实数}  数据关系:S={<r,i>}  基本操作:  InitComplex(&C,re,im)  操作结果:构造一个复数C,实部re,虚部im。  DestoryComplex(&C)  初始条件:复数C...
  • 人们在使用计算机解决客观世界中存在的具体问题时,通常过程如下:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上... 数据结构主要与在上述过程中从建立概念模型到实现模型转化并后续程序设...
  • 什么是抽象数据类型(Abstract Data Type,ADT) 定义:是指一个数学模型以及定义在这个模型上的一组操作。 包括三个部分: ​ 由用户定义,从问题抽象出数据模型(逻辑结构) ​ 定义在数据模型上的一组抽象运算...
  • 抽象数据类型

    千次阅读 多人点赞 2021-03-04 15:41:05
    抽象数据类型是由若干基本数据类型归并之后形成的一种新的数据类型,这种类型由用户定义,功能操作比基本数据类型更多,一般包括结构体和类。其实说白了,抽象数据类型就是把一些有一定关联的基本数据类型打包,然后...
  • 抽象数据类型的实例

    千次阅读 2020-03-20 15:21:38
    重新学习数据结构,主要了解了一些关于数据结构的一些相关的概念; 数据结构是一种带结构的数据集合;它包括逻辑结构还有存储结构,然后学习了一下数据类型的表示以及实现...抽象数据类型定义仅仅取决于它的一组逻...
  • 抽象数据类型 抽象数据类型=逻辑结构+抽象运算 抽象数据类型暂不考虑计算机的具体存储结构和运算的具体实现。 抽象数据类型实质上,就是在描述问题本身(与计算机无关)。 目标:在不涉及具体的,和计算机系统相关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 598,780
精华内容 239,512
关键字:

抽象数据类型定义的格式为