按照课本所说抽象数据类型 ---提供类型属性和相关操作的抽象描述。
个人理解抽象数据类型就是一个新的类型想int 那种的,在这个类型下提供了对这种类型的操作,比如int 类型 可以 + 、-、而这些加减其实就是对这个数据类型的操作。
也就是我们自己去定义一个数据类型,并提供其操作方法。
比如定义一个抽象类型叫链表,将其和int 类型比较(注: 类型特指两类信息:属性和操作):
类型名: 链表 类型名:int
类型属性: 存储一系列项 类型属性:代表一个整数值
类型操作: 初始化链表为空; 类型操作:改变int类型值符号
确定链表为空 两个int类型值相加
确定链表已满 相减,,
确定链表中的项数 相乘
。。。。。 相除.....
通过对比发现,抽象数据其实就是我们去定义一个我们需要的数据类型,然后定义它的操作。有点像struct 但是struct没有定义相关的结构操作。
下面以链表为例子:
建立的抽象的步骤:
①建立接口:使用抽象数据类型要先开发实现一个ADT的编程接口,即指明如何存储数据和执行所需函数的操作,其实我个人理解就是去:
1.定义一个类型描述如何表示数据,
2.然后定义它是如何操作的。
其实接口就是定义了 我是什么,我可以做什么。但是是怎么做的不在接口文件中。就是说接口文件里面是数据类型定义,与这个数据类型所能操作的函数名。
②使用接口: 说白了就是主函数,去调用①接口中的函数;
③实现接口:就是①接口中函数的具体实现步骤;
个人理解是,接口相当于手册里面是解释这个函数是干嘛的,数据结构是什么,使用接口就是我去用这个手册里面的东西,实现接口就是手册里面的内核被封装起来的东西。