有一个存储单元,可容纳N个项目.最初这个单位是空的.该空间以线性方式布置,即一条线旁边的一个.每个存储空间都有一个数字,增加到N.
当有人丢弃他们的包裹时,会为其分配第一个可用空间.包裹也可以被拾取,在这种情况下空间变得空白.示例:如果总容量为4且1和2已满,则第3个进入的人将被分配空间3.如果1,2和3已满并且第2个空间变空,则下一个将来的人将是分配了空间2.
他们丢弃的包有2个独特的属性,分配给立即识别.首先,它们根据其内容进行颜色编码,然后为它们分配唯一的标识号(UIN).
我们想要的是查询系统:
输入为彩色时,显示与此颜色关联的所有UIN.
输入为彩色时,显示放置这些包的所有数字(存储空间编号).
显示放置了给定UIN的项目的位置,即存储空间编号.
我想知道在这种情况下如何使用哪种数据结构,以便系统尽可能高效地工作?并且我没有给出最常见的这些操作,这意味着我将不得不针对所有情况进行优化.
请注意,即使查询过程不直接询问存储空间编号,但是当从商店中删除项目时,它将通过查询存储空间编号来删除.