2011-06-29 33 views
0

如果看一下集裝箱ADT(抽象數據類型),其爲黑盒,它提供了兩個功能:集裝箱ADT標準操作

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

第一功能將把對象x到容器C.第二將從容器C中檢索「next」對象,其中「next」取決於您想要的容器類型。堆棧實現將返回最近放入容器的元素(也稱爲FILO ADT)。

我的問題是,它是最通用的形式,容器ADT函數get()從容器中移除元素本身,還是隻是返回一個引用來訪問,保留容器中的元素?

回答

2

如果您只有put()get(),get()也必須刪除該元素,否則您將無法訪問每個n!= 1的第n個元素。
這個想法是有足夠的get() oporations,你應該能夠訪問容器中的每個元素,並且如果get()不刪除該元素,順序get()將始終返回相同的元素,所以只有第一個元素是可訪問的。


但是,對於每個實現當然可以是不同的。 (例如,您可以使用put(),get()和pop()創建ADT,其中get只會返回元素。