345得票13回答
如何正确使用列表?

简要背景:许多(大多数?)广泛使用的现代编程语言至少有一些共同的ADT [抽象数据类型],特别是: - 字符串(由字符组成的序列) - 列表(值的有序集合),以及 - 基于映射的类型(将键映射到值的无序数组) 在R编程语言中,前两者分别实现为character和vector。 当我开始学...

69得票21回答
ADTs (Abstract Data Types)是什么?

我目前正在学习抽象数据类型(ADTs),但是我完全不理解这个概念。能否有人向我解释一下这到底是什么?另外,集合、袋子和列表 ADTs 又是什么?可以用简单的语言解释吗?

67得票20回答
面向对象编程中的抽象数据类型是什么?

什么是面向对象编程中的抽象数据类型?我已经查阅了该主题的维基百科,但仍不清楚。能否请有经验的人士进行澄清?

42得票11回答
C++中高效的链表实现?

这份文档称std::list效率低下: std::list是一个极其低效的类,很少有用。每插入一个元素都会执行一个堆分配,因此具有极高的常数因子,尤其对于小数据类型。 评论:令我惊讶的是,尽管在元素构造方面效率低下,std::list支持O(1)时间复杂度的插入/删除,因为它是一个...

37得票2回答
在Scala中编写代数数据类型

在 Haskell 中,我可以定义一棵 Tree:data Tree a = Empty | Node a (Tree a) (Tree a) 我该如何用Scala编写这段代码? 我不确定如何在Scala中保留[A]类型参数以使Node的类型与Tree的类型a匹配。

31得票1回答
Java ArrayList 的时间复杂度

我在Stack Overflow上找到了其他与此问题有关的条目,但没有综合性的内容。我想确认一下我对这种数据结构最常用的方法的理解: O(1) - 常数时间:isEmpty() add(x) add(x, i) set(x, i) size() get(i) remove(i) O(N) -...

29得票3回答
什么是向量数据结构?

我知道在C++和Java中有Vector,它类似于动态数组,但我找不到任何关于Vector数据结构的通用定义。那么Vector是什么?它是一种通用的数据结构(像数组、栈、队列、树等),还是它只是一种依赖于语言的数据类型?

28得票4回答
C++中使用#include和预编译指令来实现分文件继承

我是新来的Stack Overflow用户,正在自学C++,但我仍然是个初学者。在完成了我使用的一本书的大部分内容之后(可能被认为已经过时和/或不是很好的书),我决定通过尝试自己编写代码来加强一些概念,只在需要时参考书籍,但我似乎卡住了。我试图解决的概念是继承、多态、抽象数据类型(ADT)以及...

26得票6回答
C++中是否有预定义的链表库?

在C ++中是否有我可以直接#include的链表?或者如果我想使用链表,是否需要创建自己的链表?

25得票1回答
抽象数据类型(ADT)和数据结构有什么区别?

我发现书籍和在线资源在使用这两个术语时经常没有明确的区别。