abstract-data-type相关内容

在 Haskell 中实现临时多态性的最佳方法是什么?

我有一个多态函数,例如: convert :: (Show a) =>一个->细绳convert = " [label=" ++ (显示一个) ++ "]" 但有时我想给它传递一个 Data.Map 并做一些更花哨的键值转换.我知道我不能在这里进行模式匹配,因为 Data.Map 是一种抽象数据类型(根据 this similar SO question),但我没有成功为此使用警卫,而且我不确 ..
发布时间:2022-01-24 16:30:31 其他开发

Java 部分有序集合<E>

我正在寻找一种数据结构的 Java 实现,它包含定义了 部分排序 的元素集合,并允许在某些 拓扑中迭代这些元素order(任何可能的排序都可以;最好是随着集合内容的变化而稳定排序). 理想情况下,它将实现 Collection、Set 或 SortedSet 接口并支持所有接口上的方法.在指定总排序方面,可以使用 Comparator 实例化集合,如果比较两个元素,比较器可能会抛出异常 (C ..
发布时间:2022-01-17 18:51:48 Java开发

C++ 中的高效链表?

这个文档说std::list效率低下: std::list 是一个非常低效的类,很少有用.它为插入其中的每个元素执行堆分配,因此具有极高的常数因子,特别是对于小数据类型. 评论:这让我很惊讶.std::list 是一个双向链表,所以尽管其元素构造效率低下,但它支持 O(1) 时间复杂度的插入/删除,但在此引用的段落中完全忽略了该特性. 我的问题:假设我需要一个 sequentia ..

C中的N元树

哪个是 C 语言中 N 元树的巧妙实现? 特别是,我想实现一个 n 叉树,而不是自平衡,在每个节点中有无限数量的子节点,其中每个节点都包含一个已经定义的结构,例如: struct 任务 {字符命令[MAX_LENGTH];int required_time;}; 解决方案 作为第一遍,您可以简单地创建一个 struct(我们称之为 TreeNode),它包含一个 task,以及一组指向 ..
发布时间:2021-12-23 17:28:21 其他开发

什么是面向对象编程中的抽象数据类型?

什么是面向对象编程中的抽象数据类型?我已经浏览了这个主题的维基,但我仍然不清楚.有人能澄清一下吗? 解决方案 抽象类是一个泛化概念.这是您发明的一个类,仅用作继承的基类,而不是从中实例化对象. 而且抽象数据类型(ADT)不一定是OOP概念.根据功能描述堆栈和队列等概念是一个较旧的术语,但不描述实现. ..
发布时间:2021-12-11 19:37:59 其他开发

如何在 R 中正确使用列表?

简要背景:许多(大多数?)当代广泛使用的编程语言至少有少数共同的 ADT [抽象数据类型],特别是 string(由字符组成的序列) list(值的有序集合)和 基于映射的类型(将键映射到值的无序数组) 在R编程语言中,前两者分别实现为character和vector. 当我开始学习 R 时,有两件事几乎从一开始就很明显:list 是 R 中最重要的数据类型(因为它是 ..

Java ArrayList 的时间复杂度

我发现该问题的其他条目涉及特定方法,但不全面.我想验证一下我自己对这个数据结构最常用的方法的理解: O(1) - 恒定时间: isEmpty()添加(x)添加(x,我)设置(x,我)尺寸()得到(一)删除(一) O(N) - 线性时间: indexof(x)清除()删除(x)删除(一) 这是正确的吗?感谢您的帮助. 解决方案 最好的资源直接来自 官方API: size、 ..
发布时间:2021-11-18 02:45:53 Java开发

Java ArrayList 的时间复杂度

我发现该问题的其他条目涉及特定方法,但不全面.我想验证一下我自己对这个数据结构最常用的方法的理解: O(1) - 恒定时间: isEmpty()添加(x)添加(x,我)设置(x,我)尺寸()得到(一)删除(一) O(N) - 线性时间: indexof(x)清除()删除(x)删除(一) 这是正确的吗?感谢您的帮助. 解决方案 最好的资源直接来自 官方API: size、 ..
发布时间:2021-11-17 23:14:16 Java开发

C 中的堆栈抽象数据类型

你能告诉我我做错了什么吗?我收到 SIGSEGV(分段错误)错误.单链表是实现堆栈抽象数据类型的最佳方式吗?我尽量不使用全局变量,所以这就是我使用双指针的原因. #include #include typedef 结构栈{整数数据;结构栈 *next;}堆;无效推(堆栈**头,堆栈**尾,int n){堆栈 *x;if(*head==NULL){(*head)=malloc(sizeof(STA ..
发布时间:2021-08-28 18:37:39 其他开发

抽象数据类型 vs 数据类型 vs 数据结构,关于面向对象编程

据我所知,数据结构本质上是一个蓝图,其中包含根据其规范创建最终产品所需的所有信息,而数据类型是该设计的物理实现或实现(非常类似于差异基因型和表型之间,来自生物学). 当谈到面向对象的编程时,说抽象类或接口是一种数据结构是否准确,因为它包含一组数据结构?值和声明的行为,并且实现该抽象类或接口的类是一种数据类型,因为它是这些行为的具体表现? 如果是这种情况,那么抽象数据类型 (ADT) 和 ..
发布时间:2021-06-12 19:12:07 其他开发

是否可以在Fortran 2003中模拟抽象/延迟和常规过程?

当我尝试将常规过程和递延过程混合在一种抽象类型中时,gfortran会在常规过程的任何调用时都失败:“错误:在(1)处进行类型绑定过程调用的基础对象的类型为'tbody',为ABSTRACT类型." 类型,抽象:: tBody私人的...包含程序:: init =>new_Body...过程(包含),延迟:: PointIn终端类型tBody抽象接口包含逻辑(LGT)纯函数(Body,Point ..
发布时间:2021-05-09 19:18:48 其他开发

使用#include和Inclusion防护措施在单独文件中进行C ++继承

我是Stack Overflow的新手,正在教自己C ++,但仍然是个初学者.在完成了我正在使用的一本书的大部分内容(可能被认为过时和/或不是一本好书)之后,我决定通过自己尝试一些概念来加强一些概念,仅在需要时才引用该书,但是我似乎被卡住了.我要解决的概念是继承,多态性,抽象数据类型(ADT),并将类的代码分为头文件(.h)和C ++文件(.cpp).抱歉,我只想清楚和明确我要去的地方. 因 ..
发布时间:2020-11-27 18:32:03 C/C++开发

UML中数据类型的语义

数据类型是缺少身份的一组值的描述符 这里缺乏身份意味着什么? 解决方案 引用 数据类型类似于类;但是,数据类型的实例仅通过其值来标识.如果两个数据类型具有相同的值,则实例被视为相同. 因此,这意味着您无法使用其标识符分隔此DataType的这些对象,因为它们没有任何对象.仅当前值用于比较实例.例如,像Java中的int -instances. 我希望我能帮忙... ..
发布时间:2020-11-26 03:30:18 其他开发

C ++中的有效链表?

此文档说 std :: list 的效率很低: std :: list是效率极低的类,很少使用。它为插入其中的每个元素执行堆分配,因此具有非常高的常数因子,尤其是对于小型数据类型。 :这令我惊讶。 std :: list 是一个双向链表,因此尽管其元素构造效率不高,但它支持O(1)时间复杂度的插入/删除,但是此功能被完全忽略了在此引用的段落中。 我的问题:假设我需要一个顺序容器来 ..

堆是抽象数据类型吗?如果是这样,那么优先队列呢?

我读到优先级队列是堆数据结构的抽象数据类型,或者换句话说,堆是优先级队列的实现。但令我感到困惑的是,我将堆本身视为ADT,因为它们通常是使用数组来实现的(此处讨论最小/最大堆)。在ADT领域中,有人可以给我一个明显的区别吗? 解决方案 让我分两个步骤回答您。. i)定义 数据类型是一组值以及对该类型的操作。 几乎所有名词都可以产生数据类型。 示例:整数,日期,字符串,复 ..

堆是否被视为抽象数据类型?

我正在上数据结构课程,对什么是ADT(抽象数据类型)和什么不是(如果不是ADT则必须是实现)感到有些困惑。 )。 具体地说,我在说堆。 我在Wikipedia中读过“堆“基于树的专用数据结构”是否意味着它是ADT?如果是这样,那么我也无法理解维基百科的以下内容:“堆是一种称为优先级队列的抽象数据类型的最大有效实现。” 我的意思是,Heap既可以是ADT,也可以是其他一些ADT的实 ..

Clojure可以替代Haskell的ADT和模式匹配吗?

每当在Haskell中我们需要某种变体数据类型时,我们都会将 ADT 与模式匹配。 Clojure人们在这种用例中使用什么? 解决方案 实际上,有一些为Clojure编写的模式匹配库。 Clojure的宏使这种事情成为可能。 比赛是最新的比赛之一。甚至还有一些 。 不管怎么说,核心Clojure中与Haskell的ADT最接近的是Clojure 1.2中的新记录和数据类型。但是,除非 ..