精华内容
下载资源
问答
  • 数据类型是一个值的集合和定义在这个值集合上的一组操作的总称。 数据类型可分为两大类:基本数据类型和构造...数据类型与数据结构之间的共同点在于它们都有其抽象性,它们并不特指适用于何处,可根据问题的需要和特定.
    1. 数据类型是一个值的集合和定义在这个值集合上的一组操作的总称。
    2. 数据类型可分为两大类:基本数据类型和构造数据类型
      -基本数据类型可以看作是计算机中已实现的数据结构。例如C语言中的字符型,整型,浮点型,双精度型和无值,可直接使用由它们定义的变量和相应的操作
      -构造数据类型由基本数据类型或构造数据类型组成,在应用中可视为一种数据模型。构造数据类型由不同成分类型构成,在c语言中用typedef struct来定义。
    3. 数据类型与数据结构之间的共同点在于它们都有其抽象性,它们并不特指适用于何处,可根据问题的需要和特定的使用环境,直接使用它们来表示相关的数据元素的构成或许这些数据元素之间的关系。
    4. 数据与数据结构之间的区别在于数据结构本身是一种数据组织形式和使用形式,通过把它定义成数据类型才能在计算机上使用,从这个意义上来看,数据类型是从编程者使用的角度可由计算机实现的数据结构。
    5. 数据类型本身不能参加运算,它就像一种模板,必须定义属于某种数据类型的变量,使用这些变量才能参与运算。面向对象系统中的类与对象也是这种关系。
    6. 抽象数据类型是一种数据结构。它具有三大特征:信息隐蔽、数据封装、使用与实现相分离。把数据类型的存储结构和操作的实现细节隐藏起来,使得使用者只能通过类型提供的操作来存取它们,这样,如果想修改类型的存储结构或操作的实现,只要呈现在使用者面前的使用方式不变,整个程序都不必大改。修改都不必大改。修改的局部化将大大提高程序的可修改性。
    展开全文
  • 1.4 数据类型与抽象数据类型; 按值是否可分解可将数据类型划分为两类 1原子类型其值不可分解通常是由语言直接提供 如JAVA语言的整型实型字符型等基本类型 2结构类型其值可分解为若干个成分或称为分量是用户借助于...
  • 数据类型与抽象数据类型 抽象,抽象的意思就是“不具体”,把具体的东西的特征提炼出来,从而在思考问题的时候,可以不去管具体的实现细节,只需要考虑其性质。 数据类型 数据类型,是一类数据定义的方式,例如C语言...

    数据类型与抽象数据类型

    抽象,抽象的意思就是“不具体”,把具体的东西的特征提炼出来,从而在思考问题的时候,可以不去管具体的实现细节,只需要考虑其性质。

    数据类型

    数据类型,是一类数据定义的方式,例如C语言中的int,float,double型。

    分类:
    基础型:语言里面,已经定义好不可再分的最小的数据类型,比如C中的int,float
    构造类:通过一定的方法,能够把基础型的数据进行组合形成新的数据类型的方法,比如C中的数据与结构体。

    抽象数据类型(ADT)

    定义:一个数学模型以及定义在该模型上的一组操作。

    关键:使用它的人可以只关心它的逻辑特征(因为特征已经抽象出来了),不需要了解它的存储方式(具体的实现形式)。这个也是符合抽象的性质的。

    抽象数据类型是一种数据结构。它具有三大特征:信息隐蔽、数据封装、使用与实现相分离。把数据类型的存储结构和操作的实现细节隐藏起来,使得使用者只能通过类型提供的操作来存取它们。

    抽象数据类型的标准格式:

    ADT 抽象数据类型名{
    
    数据对象:<数据对象的定义>
    
    数据关系:<数据关系的定义>
    
    基本操作:<基本操作的定义>
    
    }ADT 抽象数据类型名
    
    展开全文
  • 1.4数据类型与抽象数据类型 1.4.1数据类型 数据类型是和数据结构密切相关的一个概念,它最早出现在高级程序语言中,用以刻画(程序)操作对象的特性。在用高级程序语言编写的程序中,每个变量、常量或表达式都有...

    本节书摘来自华章出版社《数据结构与算法 C语言版》一 书中的第1章,第1.4节,作者:徐凤生,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    1.4数据类型与抽象数据类型

    1.4.1数据类型

    数据类型是和数据结构密切相关的一个概念,它最早出现在高级程序语言中,用以刻画(程序)操作对象的特性。在用高级程序语言编写的程序中,每个变量、常量或表达式都有一个它所属的确定的数据类型。类型显式或隐含地规定了在程序执行期间变量或表达式所有可能的取值范围,以及在这些值上允许进行的操作。因此,数据类型是一个值的集合和定义在此集合上的一组操作的总称。例如,C语言中的整型变量,其值为某个区间上的整数(依赖于机器),定义在其上的操作为加、减、乘、除和取模等算术运算。
    按“值”的不同特性,高级程序语言中的数据类型分为原子类型和结构类型两类。原子类型的值是不可分解的,如C语言中整型、字符型、浮点型、双精度型等基本类型,分别用保留字int、char、float、double标识。结构类型的值是由若干成分按某种结构组成的,因此是可分解的,并且它的成分可以是非结构的,也可以是结构的。例如,数组的值由若干分量组成,每个分量可以是整数,也可以是数组等。在某种意义上,数据结构可以看成是一组具有相同结构的值,而数据类型则可看成是由一种数据结构和定义在其上的一组操作组成的。

    1.4.2抽象数据类型

    抽象数据类型(Abstract Data Type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作。例如,“整数”是一个抽象数据类型,其数学特性和具体的计算机或语言无关。“抽象”的意义在于强调数据类型的数学特性。抽象数据类型和数据类型实质上是一个概念,只是抽象数据类型的范围更广,除了已有的数据类型外,抽象数据类型还包括用户在设计软件系统时自己定义的数据类型。
    ADT的定义取决于它的一组逻辑特性,而与其在计算机内的表示和实现无关。因此,不论ADT的内部结构如何变化,只要其数学特性不变,都不影响其外部的使用,从而为实现软件的部件化和可重用性提供了保证,进而提高了软件生产率。
    抽象数据类型的最重要的特点是抽象和信息隐蔽。抽象的本质是抽取反映问题本质的东西,忽略非本质的细节,从而使所设计的数据结构更具有一般性,可以解决一类问题。信息隐蔽就是对用户隐蔽数据存储和操作实现的细节,使用者仅需了解抽象操作或界面服务,通过界面中的服务来访问这些数据。
    一个含抽象数据类型的软件模块通常应包含定义、表示和实现三部分。
    抽象数据类型可用(D,S,P)三元组表示,其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。本书采用以下格式定义抽象数据类型:

    ADT抽象数据类型名{
    数据对象:〈数据对象的定义〉
    数据关系:〈数据关系的定义〉
    基本操作:〈基本操作的定义〉
    }ADT抽象数据类型名
    其中,数据对象和数据关系的定义采用伪码描述,基本操作的定义格式为:

    基本操作名(参数表)
    初始条件:〈初始条件描述〉
    操作结果:〈操作结果描述〉
    基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以&打头,除可提供输入值外,还将返回操作结果。“初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应的出错信息。“操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略操作结果。

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

    抽象数据类型可以通过固有数据类型来表示和实现,即利用处理器中已存在的数据类型来说明新的结构,用已实现的操作来组合新的操作。本书采用介于伪码和C语言之间的类C语言作为描述工具,下面对其作简要说明。
    (1)预定义常量

    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define OVERFLOW-1

    (2)数据结构的表示(存储结构)
    数据结构的表示用类型定义(typedef)描述,数据元素类型约定为ElemType,由用户在使用该数据类型时自行定义。
    (3)基本操作算法的描述

    函数类型函数名(参数表){//算法说明
    语句序列
    }//函数说明

    除了需要说明函数中的参数类型外,对算法中使用的变量可以不作变量说明,但在必要时要对其作用给予注释。在参数表中,以&打头的参数为引用参数。
    一般而言,a、b、c、d等用作数据元素名,i、j、k等用作整型变量名,p、q、r等用作指针变量名。
    (4)赋值语句
    简单赋值:变量名=表达式;
    串联赋值:
    变量名1=…=变量名k=表达式;
    条件赋值:
    变量名=条件表达式?表达式T:表达式F;
    (5)选择语句
    条件语句1:
    if(表达式)语句;
    条件语句2:
    if(表达式)语句;

    else语句;

    开关语句1:
    switch(表达式){
    case值1:语句序列1;break;

    case值n:语句序列n;break;
    default:语句序列n+1;break;

    }
    开关语句2:
    switch{
    case条件1:语句序列1;break;

    case条件n:语句序列n;break;
    default:语句序列n+1;break;

    }
    (6)循环语句
    for语句:

    for(赋初值表达式序列;条件;修改表达式序列)语句;
    while语句:
    while(条件){
    语句序列

    };
    do-while语句:
    do{
    语句序列;

    }while(条件);
    (7)输入输出语句
    输入语句:
    scanf([格式串],变量1,变量2,…,变量n);
    输出语句:
    printf([格式串],变量1,变量2,…,变量n);
    (8)结束语句
    函数结束语句:
    return表达式;

    return;
    异常结束语句:
    exit(异常代码);
    case结束语句:
    break;
    (9)注释
    单行注释://文字序列
    (10)逻辑运算符
    与运算&&、或运算||、非运算!。
    例1

    抽象数据类型“复数”的表示与实现。
    //-----复数存储结构的定义-----
    typedef struct{
    float realpart;
    float imagpart;
    }complex;
    //定义抽象数据类型“复数”
    ADT Complex {
    数据对象:D={e1,e2|e1,e2∈RealSet}
    数据关系:R1={|e1是复数的实数部分,e2是复数的虚数部分}
    基本操作:
    AssignComplex(&z,v1,v2)
    操作结果:构造复数z,其实部和虚部分别被赋予参数v1和v2的值。
    GetReal(z,&realPart)
    初始条件:复数已存在。
    操作结果:用realPart返回复数z的实部值。
    GetImag(z,&ImagPart)
    初始条件:复数已存在。
    操作结果:用ImagPart返回复数z的虚部值。
    Add(z1,z2,∑)
    初始条件:z1,z2是复数。
    操作结果:用sum返回两个复数z1,z2的和值。
    DispComplex(complex z);
    初始条件:复数已存在。
    操作结果:输出复数z。
    }ADT Complex

    //-----基本操作的实现-----
    void AssignComplex(complex &z,float v1,float v2){//构造复数Z
    z.realpart=v1;
    z.imagpart=v2;
    }
    void GetReal(complex z,float &realpart){//用realPart返回复数Z的实部值
    realpart=z.realpart;
    }
    void GetImag(complex z,float &imagpart){//用ImagPart返回复数Z的虚部值
    imagpart=z.imagpart;
    }
    void add(complex z1,complex z2,complex &sum){//以sum返回两个复数z1,z2的和
    sum.realpart=z1.realpart+z2realpart;
    sum.imagpart=z1.imagpart+z2imagpart;
    }
    void DispComplex(complex z){//输出复数Z
    printf("%f+%fi\\n",z.realpart,z.imagpart);
    展开全文
  • 相信我们已经学习了多种编程语言,那么自然接触过int,float,bool等等这些数据类型,没错,这些就是数据类型,按定义来说,就是一个值的集合加上操作,可为啥需要有这些数据类型呢。计算机中内存也是有限的,为了...

    相信我们已经学习了多种编程语言,那么自然接触过int,float,bool等等这些数据类型,没错,这些就是数据类型,按定义来说,就是一个值的集合加上操作,可为啥需要有这些数据类型呢。计算机中内存也是有限的,为了提高内存使用效率,不浪费空间,自然是需要设计出这些数据类型来划定多大数据占多大内存空间,于是就有了数据类型。数据类型分为两大类:原子类型(不能再分,例如int,float)和结构类型(可再分,例如:数组,线性表,树等)。那抽象数据类型又是啥呢,其实在实质上它与数据类型相同,就是一个概念,但是它是一个数学模型加上操作,简称ADT(abstract data type),前面讲的数据结构可以用二元组来表示(D,S)(D是数据元素有限集,S是D上的关系有限集),而抽象数据类型可以用三元组进行表示(D,S,P)(P是基本操作集)。简单来概括一下,抽象数据类型==数据结构+操作。

     

                                                                                                                                                                BY   ZJQ

    展开全文
  • 1.6数据类型和抽象数据类型 1.6.1数据类型 (隐含规定了数据所有可能的范围,以及在数值范围内允许进行的操作) 一般在使用高级程序设计语言编写程序的时候,必须对程序中出现的变量、常量或者表达式进行说明他们的...
  • 抽象数据类型 在冯诺曼的计算机体系结构中,所有的数据在计算机中都是以二进制的形式存在的,所以对计算机的存储设备来说,并没有数据类型这种东西。但是人们为了方便使用计算机处理数据并合理分配内存空间(因为...
  • 什么是抽象数据类型(Abstract Data Type,ADT) 定义:是指一个数学模型以及定义在这个模型上的一组操作。 包括三个部分: ​ 由用户定义,从问题抽象出数据模型(逻辑结构) ​ 定义在数据模型上的一组抽象运算...
  • 客户关心一个数据类型比如堆栈提供什么样的功能,而不关心功能是如何实现的,就叫数据抽象。 因此只要类的public服务不改变,系统其余部分就不受影响。  许多程序设计语言强调动作。在这些语言中,数据的存在是...
  • 数据类型 数据类型是一个值的集合和定义在此集合上的一...抽象数据类型实质上,就是在描述问题本身(计算机无关)。 目标:在不涉及具体的,和计算机系统相关的细节情况下,优先理解问题本身,在此基础上,实现用...
  • 抽象数据类型概念

    千次阅读 2018-12-06 19:10:33
    数据类型与抽象数据类型的异同 首先数据结构定义为一个二元组 Data_Stucture(D,S),即两个集合,D是数据元素的集合,而S是数据元素之间或多个关系的集合 抽象数据类型其实本质上就是数据类型,涉及数据的存储以及如何...
  • 9-31 Binary Search ? A binary search looks for an item in a list using a divide- and-conquer strategy Binary search algorithm assumes that the items in the list being searched are sorted The algorithm
  • 抽象数据类型与

    2019-10-02 14:43:45
    抽象数据类型与类 1.抽象数据类型是一个由对象以及对象上的操作组成的集合,对象和操作被捆绑为一个整体,可以从程序的一个部分传递到另一个部分。 2.分解和抽象可以使程序易于修改,以控制程序的复杂度,分解使...
  • 1.抽象数据类型 下面这个例子是关于复数的一个抽象数据类型,所谓抽象数据类型,由三部分构成: 数据对象:c1 数据关系:x是c1的实部,y是c1的虚部 基本操作:求实部、求虚部、求和、求差 #include <stdio.h>...
  • 数据结构、数据类型、抽象数据类型之间的区别

    千次阅读 多人点赞 2019-11-03 20:15:37
    逻辑结构指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而他们在计算机中的存储位置无关。包括: 1.集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,...
  • 抽象数据类型

    2021-03-28 22:51:59
    抽象数据类型1. 抽象数据类型 1. 抽象数据类型 抽象数据类型(Abstract...整数、实数、布尔数各自都有之相关的操作,而抽象数据类型也是如此。对于集合ADT,可以有像添加(add)、删除(remove)以及包含(contain)这
  • 抽象数据类型概念(百度版) 抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。 它包括数据对象、数据关系、操作集合 例子:arraylist ADT ArrayList{ 数据对象:D=...
  • 抽象数据类型与C++

    2019-07-23 12:02:00
    类是一种新的数据类型,类似于数据结构,只是它拥有数据结构所没有的部分——“成员函数”,正是因为它所拥有的成员函数这一特性,使得它能隐藏“数据结构”(类)中的数据,不被用户所知道。通过类中的成员函数,...
  • 数据结构、数据类型和抽象数据类型,这三个术语在字面上既不同又相近,反映出它们在含义上既有区别又有联系。 数据结构是在整个计算机科学技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据...
  • JAVA算法:01.算计概述与抽象数据类型.rar 有ppt与源码与教学视频
  • #抽象数据类型(Abstract Data Type ADT) 1.特征:将使用实现分离,从而实行封装和隐藏信息。只描述“是什么”,不涉及“如何做到”。 2.描述对象:数据对象集 和 数据集合相关的操作集 3元素类型(ElementType)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,008
精华内容 3,603
关键字:

数据类型与抽象数据类型