Abstract Data Type,抽象数据类型,是指数据结构作为一个软件组件的实现。ADT的接口用一种类型和该类型上的一组操作来定义,每个操作由它的输入和输出定义。
ADT并不会指定数据类型如何实现,这些实现细节对于ADT的用户来说是隐藏的,并且通过封装(encapsulation)来阻止外部对他的访问。
数据结构(Data Structure)是ADT的实现,在诸如c++之类的面向对象语言中,ADT及其实现组成了类(class)。同ADT联系在一起的每个操作均由一个成员函数(member function)来实现。数据结构是指存储在计算机内存中的数据,文件结构是指外存储器中数据的组织。
对于使用同一ADT的两个应用程序,可能存在一个应用程序使用的ADT特殊方法比另一个多的情况或者这两个程序对该ADT的操作有不同的时间需求。正是由于应用程序的需求存在差异,才使一个给定ADT有多种实现形式的可能性。
问题:从直觉上讲,问题无非是一个需要完成的任务,即一组输入就有一组对应的输出。
算法:算法是指解决问题的一种方法或者一个过程。
程序:一个计算机程序被认为是使用某种程序设计语言对一种算法的具体实现。