数据结构的扩张
数据结构的扩张
由于数据结构理论已经很成熟,标准数据结构在性能与抽象上往往没有太大改动空间。所以在需要更多功能的数据结构时,往往只需找到相关的标准数据结构作为基础,然后在其上存储额外变量、构造额外运算。这样的流程就称为“数据结构的扩张”,数据结构的扩张往往不是一个单纯的数据结构与算法的问题,其还包含了一定的程序设计、面向对象设计方面的考量。下文将以广泛作为标准结构的红黑树为例,研究2种红黑树的扩张。数据结构的扩张可分为如下步骤:
1) 根据问题选择标准数据结构作为基础结构;
2) 确定基础结构上需额外维护的附加信息;
3) 验证基础结构上的运算能否维护附加信息;
4) 构造新的运算;
下面是之前写过的红黑树代码,用它作为面向对象编程的父类/基类,之后会用面向对象的继承来实现红黑树的扩张。
Python
class Nil:… 阅读全文