最近评论
正在载入评论列表...
![]() |
![]() |
(1) 在定义ADT来解决问题时,不要请求不必要的操作。实现的正确选择取决于需要执行的操作集合。若请求不必要的操作,则所选的实现可能不能恰如其分地支持当前的需求。
(2) 在执行有序的插入和删除操作时,ADT表若采用基于数组的线性实现方案,就必须移动数据引用。这些移动操作比较费时,若表很大,就更是如此。
(3) 若ADT表采用基于引用的线性实现,就不需要移动数据引用,但在执行插入和删除操作时,其效率不如基于数组的实现,原因是不能合理地执行二叉查找。
(4) 一般情况下,二叉查找树都可以非常高效地支持ADT表的操作。但在最坏的情况下,即当树形接近于线状时,表操作的性能与基于引用的线性实现相近。若给定应用程序不能接受低性能,则应使用第13章介绍的表实现。
(5) 堆是优先队列的一种较好的实现,但它不适用于表。特别是,堆不能有效地支持有序的tableRetrive和遍历操作。