Container ADT标准操作

时间:2011-06-29 21:10:02

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

如果将Container ADT(抽象数据类型)视为黑盒子,它提供两个函数:

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

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

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

1 个答案:

答案 0 :(得分:2)

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

但当然,每种实施方式可能有所不同。 (例如,你可以用put(),get()和pop()创建一个ADT,其中get只返回元素。