啊我们所看到的数据结构都属于具体的数据结构。所谓具体的数据结构,是指它们的具体结构和对它们的操作方法完全都由我们自己来定义。例如,利用两个整型的数或者枚举类型的数来表示扑克牌的Card类,用两个浮点数来定义的复数类。抽象数据结构,或者叫做ADT(abstract data type),虽是定义了一系列的操作(或者直接叫方法)和这些操作的作用(它们做什么),但我们却并不指定这些操作过程如何具体予以实施的办法(即不编写具体的代码)。这样出现的数据结构就是抽象数据结构。例如,抽象的堆栈(stack)由3个操作定义:推入push,弹出pop(接受约束:每次弹出返回的是最新被推入且没有被弹出的数据,也就是后进先出),查看堆栈顶端数据peek。当分析使用堆栈算法的效率,所有这3个操作用时相同,无论堆栈中包含多少项数据;并且对每项数据栈使用了常量大小的存储。抽象数据类型(ADT)是纯粹理论实体,用于简化描述抽象算法,分类与评价数据结构,形式描述程序设计语言的类型系统。一个ADT可以用特定数据类型或数据结构实现,在许多程序设计语言中有许多种实现方式;或者用形式规范语言描述。