抽象数据类型可以由另一种抽象数据类型组成吗?

Can an abstract data type be made from another abstract data type?

提问人:joelcurry 提问时间:12/5/2020 更新时间:12/5/2020 访问量:57

问:

根据我的理解,抽象数据类型是一种具有抽象表示的数据类型,可以通过多种方式实现其核心功能。它与具体数据类型相反。在大多数书籍或类中,它们都描述了抽象数据类型应该由具体数据类型来实现。一个抽象数据类型不能由另一个抽象数据类型实现吗?从技术上讲,总是有各种项目或问题要求我们实现带有队列的堆栈,这是另一种抽象数据类型。也许我误解了什么,导致我在这里问。从概念上讲,在语言的设计中,抽象数据类型总是由具体的数据类型构成的,还是/可以由其他抽象数据类型构成的?为什么要依赖答案?

OOP 对象 与语言无关 的术语 抽象数据类型

评论


答:

0赞 Thilo 12/5/2020 #1

不确定这是否是你的意思,你可以使用抽象数据类型 Map 来实现抽象数据类型 Set(通过使用 Map 条目对 Set 条目进行建模以指示其存在)。这就是 Java 的 HashSet 是如何完成的,它在内部使用 HashMap。ee -> dummyValue

另一个例子是 Stack(可以使用 List 实现)。