精华内容
下载资源
问答
  • 第11&12章 数据结构和抽象数据类型(Data Structure & Abstract Data Type) 教学目标通过本章的学习同学们应该能够:定义数据结构了解其分类抽象数据类型的定义熟练掌握栈和队列的原理及应用广义表的定义及操作树与...
  • 实验项目名称: 抽象数据类型的实现 实验项目性质: 设计性实验 所属课程名称: 数据结构 以教材中讨论的各种抽象数据类型为对象,利用C语言的数据类型表示和实现其中某个抽象数据类型。 本资源包括了可执行文件、源...
  • 数据结构与算法(3)–栈抽象数据类型及Python实现 1. 什么是栈? 是一种有次序的数据项集合,在栈中数据项的加入和移除都发生在同一端。一端叫做栈顶,另一端叫做栈底。 1.1. 特点 距离在栈底比较近的数据项,待的...
  • 二叉树的基本功能: 1、二叉树的建立 2、前序遍历二叉树 3、中序遍历二叉树 4、后序遍历二叉树 5、按层序遍历二叉树 6、求二叉树的深度 7、求指定结点到根的路径 8、二叉树的销毁 9、其他:自定义操作
  • 有理数抽象数据类型

    2014-06-05 23:20:30
    通过构造有理数的抽象数据类型,完成有理分数加减乘除和求导操作。
  • 广工,数据结构的抽象数据类型-树,有需要的童鞋可以下载查看,里面的资料齐全,可以直接交给老师即可
  • 数据结构、数据类型、抽象数据类型之间的区别

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

    三者的定义(蓝字可忽略):

    • 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。)
      • 逻辑结构指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。包括: 
        • 1.集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系; 
        • 2.线性结构:数据结构中的元素存在一对一的相互关系; 
        • 3.树形结构:数据结构中的元素存在一对多的相互关系; 
        • 4.图形结构:数据结构中的元素存在多对多的相互关系。
      • 物理结构:指数据的逻辑结构在计算机存储空间的存放形式。 
        • 数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构。 
        • 数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。 
        • 关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。 
    • 数据类型:是一个值的集合以及定义在这个值集上的一组操作。数据类型的分类为:原子类型和结构类型。
      • 为什么要有数据类型:计算机中内存也是有限的,为了提高内存使用效率,不浪费空间,自然是需要设计出数据类型来划定多大数据占多大内存空间,就有了数据类型。
    • 抽象数据类型:抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型,如int,float等)来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。

    数据结构和数据类型的区别:

    • 数据类型的分类为:原子类型和结构类型;
      • 原子类型 = 一种值的集合 + 定义在值集合上的一组操作。(比如:int,float,字符串)
        • int型:包括值集(1,2,3,4,5。。。),并且可以在这些值上进行+-*/
      • 结构类型 = 一种数据结构 + 定义在这种数据结构上的一组操作。(比如:python中的列表,字典,元组)
      • 原子类型 + 结构类型 = 数据类型
    • 总结:数据结构是一种值(值=数据元素)的集合(根据数据结构的定义,只是给“值的集合”加了个约束:数据元素相互之间存在一种或多种特定关系,所以可以把数据结构看作一种值的集合),这种值集+定义在值集上的一组操作就是结构类型,而结构类型是数据类型的一种,所以数据结构是一种数据类型。
    • 数据结构可以看成是数据类型的一个子集(如下图):

    数据类型与抽象数据类型的区别:

    • 数据抽象的意义在于数据类型的数学抽象特性。抽象数据类型和数据类型实质上都是概念,只不过抽象数据类型是对数据类型的进一步抽象。不仅限于各种不同的计算机处理器中已经实现的数据类型,还包括为解决更为复杂的问题而由用户自定义的复杂数据类型。不仅限于各种不同的计算机处理器中已经实现的数据类型,还包括为解决更为复杂的问题而由用户自定义的复杂数据类型。如:C++中的类就是抽象数据类型的一种具体实现。
    • 通俗的讲:抽象数据类型,泛指除基本数据类型以外的数据类型。
      • 什么叫类型?就是一类数据。基本数据类型被人做是最基本地,不可再划分的数据,一般就是整形、浮点型、以及字符型。抽象数据类型是由若干基本数据类型归并之后形成的一种新的数据类型,这种类型由用户定义,功能操作比基本数据类型更多,一般包括结构体和类。其实说白了,抽象数据类型就是把一些有一定关联的基本数据类型打包,然后当做新的数据类型使用。
      • 抽象数据类型的用处:比如你要实现对一个人地信息管理,如果你只用基本数据类型那么你需要定义很多数据类型的变量比如名字、性别、出生地、生日之类的,并且操作起来不方便。如果用抽象数据来实现就简单了,直接把这些信息放包装在一个新的数据类型中,然后就可以直接定义这样的一个变量就可以了。

    如果还不清楚两者的区别的话可以参考一下这篇文章:https://blog.csdn.net/weixin_42257806/article/details/80892797

    数据结构和抽象数据类型之间的区别:

    • “数据结构”定义为一个二元组(D,S),即两个集合,D是数据元素的集合,S是数据元素之间一个或多个关系的集合。
    • “抽象数据类型”本质是“数据类型”,与计算机相关,涉及数据的存储及如何用存储来反应数据元素之间的关系。它定义为一个三元组(D,S,P),加上的P是定义的一组针对存储的数据操作(如插入,删除,排序等)。
    • 总之“抽象数据类型”是“物理”概念,“数据结构”是“逻辑”概念。“抽象数据类型”来实现“数据结构”。

    上面就是对数据结构、数据类型、抽象数据类型之间的区别的说明,若有错误,欢迎指正。

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

    千次阅读 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的功能,包括具体的数据表示和操作。
    展开全文
  • 抽象数据结构

    千次阅读 2020-01-23 09:49:40
    1.抽象数据类型定义 抽象数据类型( Abstract Data Type,ADT)是带有一组操作的一些对象的集合。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。 2.抽象数据类型表示...

    1.抽象数据类型定义

           抽象数据类型( Abstract Data Type,ADT)是带有一组操作的一些对象的集合。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。

    2.抽象数据类型表示方法

           抽象数据类型是一个数学模型以及定义在其上的一组操作组成,因此,抽象数据类型一般通过数据对象、数据关系以及基本操作来定义,即抽象数据类型三要素是(D,S,P)

           ADT抽象数据类型名{

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

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

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

           } ADT抽象数据类型名

    3.数据结构定义

      数据结构(Data Structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。

    4.数据结构和抽象数据类型之间的联系和区别

           数据结构定义为一个二元组(D,S),即两个集合,D是数据元素的集合,S是数据元素之间一个或多个关系的集合。

           抽象数据类型本质是“数据类型”,与计算机相关,涉及数据的存储及如何用存储来反应数据元素之间的关系。它定义为一个三元组(D,S,P),加上的P是定义的一组针对存储的数据操作(如插入,删除,排序等)。


      

    展开全文
  • 在学习数据结构类型时,首先遇到的一个难点即是如何理解抽象数据结构类型。通过阅读多个博客,将个人理解总结如下: 如已看过抽象数据类型定义,可直接跳过定义。 抽象数据类似的定义 抽象数据类型(Abstract Data ...

    在学习数据结构类型时,首先遇到的一个难点即是如何理解抽象数据结构类型。通过阅读多个博客,将个人理解总结如下:

    如已看过抽象数据类型定义,可直接跳过定义。
    抽象数据类似的定义
    抽象数据类型(Abstract Data Type 简称ADT)是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过固有数据类型(高级编程语言中已实现的数据类型)来实现。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。

    如何理解?
    1, 抽象数据类型 = 逻辑结构+数据运算。逻辑结构不涉及数据在计算机中具体的实现和存储,这些操作是由存储结构决定的,这就是说,抽象数据类型只需考虑问题本身即可。

    均以买衣服的例子进行解释:在买衣服砍价时,自己需要将砍价这个事情抽象为语句(即构建模型)表达出来(操作),而不需要考虑卖家能否接受自己说的话(不需要考虑计算机如何处理)。

    2,类型是指一类数据。基本数据类型被人做是最基本地,不可再划分的数据,一般就是整形、浮点型、以及字符型。抽象数据类型是由若干基本数据类型归并之后形成的一种新的数据类型,这种类型由用户定义,功能操作比基本数据类型更多,一般包括结构体和类。

    例:要表达的语句中,应包含“动词”,“衣服名称”,“价格数字”等类型。也就是说,说的语句是由许多基本类型组成。

    3,抽象数据类型是在在不涉及具体的,和计算机系统相关的细节情况下,优先理解问题本身,在此基础上,实现用计算机求解问题的过程。这就是使用抽象数据类型的目的。

    例:我将砍价的语句说出来目的就是为了能够便宜点买衣服,将话说出来也便于卖家了解我的想法(便于计算机进行处理)。

    再举一个别的博客里面的例子:
    构建抽象数据类型复数(e1+e2i)

    这里是引用

    通过上例可知,问题是要将复数加法描述出来,而抽象数据类型就是在这种形式化的描述下把数据的组成和如何操作的问题描述清楚,且没有涉及到具体的计算机具体实现的一些问题。从数据对象中看出,抽象数据类型是由实数数据类型组成。另外,右侧c++代码是在通过抽象数据类型ADT描述清楚问题本身后,然后在此基础上设计高级程序语言中具体实现的过程,在这个阶段涉及到了计算机的具体实现和存储等因素。从此可知,该例子也符合上文中提出的3点对抽象数据类型理解的看法。

    参考博客1
    参考博客2
    百度百科

    展开全文
  • 设计实现抽象数据类型“复数” 实现复数的加法、减法、乘法,以及求复数的实部、虚部等基本操作。
  • 数据结构课程里的抽象数据类型实现,最难的一个 图的抽象数据类型实现 老师给了优秀 做了5天的成果
  • 实现两个有理数相加、相减、相乘以及求分子或求分母的运算。
  • 图的抽象数据类型实现 数据结构实验 广工 链表实现
  • 抽象数据类型(三元组ADT、复数四则运算) 数据结构 湖南大学
  • 抽象数据类型

    千次阅读 多人点赞 2021-03-04 15:41:05
    抽象数据类型,泛指除基本数据类型以外的数据类型。 什么叫类型?就是一类数据。基本数据类型被人做是最基本地,不可再划分的数据,一般就是整形、浮点型、以及字符型。抽象数据类型是由若干基本数据类型归并之后...
  • 人们在使用计算机解决客观世界中存在的具体问题时,通常过程如下:首先通过对客观世界的认知形成印象和概念从而得到了信息,在此基础上... 数据结构主要与在上述过程中从建立概念模型到实现模型转化并为后续程序设...
  • C语言实现抽象数据类型(ADT)

    千次阅读 多人点赞 2020-12-22 20:49:02
    C语言实现抽象数据类型(ADT)什么是抽象数据类型(ADT)C语言通过怎样的方式来实现ADT举例前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习目标:学习内容:学习时间:学习产出: 什么是抽象数据类型...
  • 数据结构之抽象数据类型-复数四则运算 数据结构之抽象数据类型-复数四则运算2007-04-28 16:06[ 复数 ADT 的描述 ]  ADT complex{  数据对象: D={ c1,c2 c1,c2 ∈ FloatSet }  数据关系: R={ ,c2> c1 c2 }  ...
  • 功能有初始化,求最大值,最小值,按升序排序、按降序排序等等
  • C实现稀疏矩阵抽象数据类型
  • 数据类型: 是一个值的集合和定义在此集合上一组操作的总称。 数据类型有两种:简单型和结构类型。...抽象数据类型(Abstract Datat Type, ADT): 是一个数学模型和定义在此数学模型上一组操作。 ...
  • 抽象数据类型的实例

    千次阅读 2020-03-20 15:21:38
    重新学习数据结构,主要了解了一些关于数据结构的一些相关的概念; 数据结构是一种带结构的数据集合;它包括逻辑结构还有存储结构,然后学习了一下数据类型的表示以及实现...抽象数据类型的定义仅仅取决于它的一组逻...
  • 数据类型和抽象数据类型

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

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

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

    千次阅读 多人点赞 2018-05-25 11:40:53
    1. 以数据为核心的思维   在现实中计算机能够解决非常多的问题,如图1所示,可以用计算机去实现一个GIS地理信息系统,也可以实现一个电子病历系统,或者实现一个计算机管理资源的图形化界面等。包括现在我们使用...
  • 本设计是对抽象数据类型--树的实现,采用了两种存储结构。分别实现了树的所有基本操作。本设计比较人性化的地方在于测试数据内嵌在程序当中,用户无需繁琐地输入建立树的数据。本程序提供了八棵树的数据作为测试,...
  • 数组的定义(抽象数据类型)

    千次阅读 2020-02-25 18:33:12
    类似于线性表,抽象数据类型数组的定义(C语言风格)为: 注: &为引用 ,&A为引用A。 OK的状态码为1 数据对象: aabcde…… a是数组a的一维下标,若a=5,那么数组a的第一维的长度为5 b是数组a的二...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,014,326
精华内容 405,730
关键字:

抽象数据