“列表”作为不合格的数据结构

大卫542

当有人说“列表”并提供没有任何内部细节的基本界面时,例如:

bool   init  (      List *plist)
bool   free  (      List *plist)
size_t size  (const List *plist)
bool   insert(      List *plist, const Item *pitem)
bool   delete(      List *plist, int idx);

通常的实现是什么?也就是说,它通常是指“单链表”、“双链表”、“动态数组”还是以上任何一种?基本上,列表是一个通用术语,可以表示数据结构的许多变体,或者它通常是否建议特定的实现,除非另有说明。

抽象数据类型 (ADT) 的重点是关注如何使用数据类型,而不是如何实现它。ADT 的接口应反映在预期用例中高效所需的操作。

话虽如此,我希望这个特定 ADT 的实现是一个动态数组,可能带有哈希索引。但这与数据类型的名称无关。

List没有说太多,它所说的(在我看来,元素按某种特定顺序排列)并没有反映在界面中。事实上,我完全不确定那个界面的意义是什么。我看到你如何将东西放入收藏中。但是你如何找回它们呢?

无论如何,没有容器名称的最终权威。因此,您可以像 Humpty Dumpty 一样自由地使用词语来表达您希望它们表达的意思。我提到的工作是由数学家写的,这并非巧合。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章