回答
在一些语言操作的数据的对象,使一个数据类型以及函数的数学模型,它不不管是什么,我可以给你以下几点:
Stack make_stack();
void push(Stack stack, value);
value pop(Stack stack);
然后,我可以说,假设你要推三个值入堆栈,然后弹出一个关。这可能是这样的:
Stack my_stack = make_stack();
push(my_stack, 14); /* stack now contains: 14 */
push(my_stack, "foo"); /* stack now contains: 14 foo */
push(my_stack, 999); /* stack now contains: 14 foo 999 */
x = pop(my_stack); /* x = 999, stack contains 14 foo */
这是一个抽象数据类型:我已经定义了一个新的类型,堆栈,我已经给你一个抽象的接口吧。就是说,我已经给你提供了构成数据类型的数据对象,就像你所说的那样,形式为Stack
,并且我已经给你函数make_stack
,push
和pop
来对它进行操作。
堆栈可以通过列表,数组,堆或其他完全实现,并且没有外部可见的方式来知道什么。你所知道的是,你有一个特定的API使用它,并且该API保证你得到类似堆栈的行为。这个堆栈是一个抽象的数据类型。
谢谢里昂,您的宝贵答复。多一个怀疑抽象数据类型是一种从基本数据类型(int,float,char)派生的用户定义数据类型? –
我不确定你在问什么。抽象数据类型可以由语言或用户提供。它不能是一个纯粹的本地类型,因为它暴露了实现,但它可以包装一个。 –
- 1. 什么是抽象类型?
- 2. 数据结构 - 抽象数据类型(ADT)VS具体数据类型(CDT)
- 3. 如何理解ADT(抽象数据类型代数)?
- 4. 什么是Haskell中的一些抽象数据类型,它们与代数数据类型有什么不同?
- 5. 抽象数据类型
- 6. 什么是在PHP中的抽象类?
- 7. 这是为什么抽象类在PHP
- 8. Haskell中的列表:数据类型还是抽象数据类型?
- 9. 排序抽象数据类型在Haskell
- 10. SML:创建抽象数据类型
- 11. 抽象数据类型问题
- 12. 为什么你需要知道抽象类的抽象方法是否抽象
- 13. 抽象类型
- 14. 抽象类型定义中的“+”是什么意思?
- 15. OOXML:“抽象编号定义类型”是什么意思?
- 16. 为什么返回类型的方法是抽象的?
- 17. 抽象类型与类型参数
- 18. 什么是CI_Controller built_in类?不管它是抽象的还是不抽象的?
- 19. 什么是算法中的抽象数据类型,为什么我们需要它们?
- 20. 什么是数据层的正确抽象数量?
- 21. 这应该是什么数据类型?
- 22. 什么是REBOL结构!数据类型?
- 23. ActionScript *数据类型 - 它是什么?
- 24. 这是什么类型的数据库?
- 25. 输出是什么数据类型?
- 26. 什么数据类型是$('#checkbox')。attr('checked')
- 27. 这是什么Ruby数据类型?
- 28. unix_timestamp(MySQL)的数据类型是什么?
- 29. 什么是cin的数据类型
- 30. vptr的数据类型是什么?
http://en.wikipedia.org/wiki/Abstract_data_type –