1. 抽象对象和对象集
抽象对象:操作目标是一个对象,且对象类型不确定。
对象集:操作目标是一组对象,且同对象集类型相同,但类型不确定。
对于抽象对象的实现,可以使用 ADT,也可以使用 typedef 和 宏,
对于大多数应用,ADT太多繁琐,且效率相对低,所以更倾向于使用 typedef 宏
如
typedef int Item
#define eq(A, B) (A == B)
typedef char *Item
#define eq(A, B) (strcmp(A, B) == 0)
若抽象对象很复杂,则应该考虑ADT。
集合对象,他有多个通用操作:
- 向集合插入一个新对象
- 从集合删除一个对象
为了方便,通常还包含 - 初始化
- 统计
- 销毁
- 复制
集合对象的实现 和 链表,数组,
链表,数组,树,是集合对象的实现基础,由于他们插入,遍历等操作效率不同,
所以对不同特征的集合对象的实现的效率不同。
ADT:抽象数据类型,指 只通过接口进行访问的数据类型,使用ADT的程序为客户,
ADT定义程序为实现。