【问题标题】:Container ADT standard operation容器 ADT 标准操作
【发布时间】:2011-06-29 21:10:01
【问题描述】:

如果把Container ADT(抽象数据类型)看成一个黑盒子,它提供了两个功能:

1. put(C, x)
2. get(C)

第一个函数将对象 x 放入容器 C。第二个函数将从容器 C 中检索“下一个”对象,其中“下一个”取决于您想要的容器类型。堆栈实现将返回最近放入容器的元素(也称为 FILO ADT)。

我的问题是,在它最通用的形式中,Container ADT 函数 get() 是从容器中删除元素本身,还是只是返回对它的引用以供访问,将元素保留在 Container 中?

【问题讨论】:

    标签: data-structures stack abstract-data-type


    【解决方案1】:

    如果您只有put()get()get() 也必须删除元素,否则您将无法访问每个 n!=1 的第 n 个元素。
    这个想法是有足够的get() oporations,你应该能够访问容器中的每个元素,如果get() 不删除元素,顺序get() 将始终返回相同的元素,所以只有第一个元素是可访问的。


    当然,每个实现都可能不同。 (例如,您可以使用 put()、get() 和 pop() 创建一个 ADT,其中 get 只会返回元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 2012-08-03
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多