一、一些定义
R:表示空间,ADT内部的具体的对象及其内容
A:抽象空间,抽象值构成的空间,用户看到和使用的值
ADT开发者关注表示空间R,用户t关注抽象空间A
可以发现,R到A是满射,但未必是单射
AF:抽象函数:R和A之间映射关系的函数,即如何去解释R中的每一个值为A中的每一个值。
可以写作 AF : R → A
RI:RI告诉我们空间R中的r是否被AF映射到了空间A中的某个值
可以写作 RI : R → boolean
RI形成了空间R的一个子集(子集中的 所有元素均被AF映射到了空间A中)
RI代表某个具体的“表示”是否是“合法的” ,也可将RI看作:所有表示值的一个子集,包含了所有合法的表示值 ,也可将RI看作:一个条件,描述了什么是“合法”的表示值
二、在构造ADT中的应用
不同的内部表示,需要设计不同的AF和RI,选择某种特定的表示方式R,进而指定某个子集是“合 法”的(RI),并为该子集中的每个值做出“解释”(AF)——即如何映射 到抽象空间中的值。
设计ADT:(1) 选择R和A;(2) RI --- 合法的表示值; (3) 如何解释合法的表示值 ---映射AF 做出具体的解释:每个rep value如何映射到abstract value