Если у меня есть какая-то произвольная структура данных, что я могу сказать об этой структуре, если выполняются следующие сценарии:
(1) Если я добавлю пять элементов в структуру данных, то можно получить те же пять элементов в том же порядке. Например, если я помещу числа 4, 6, 2 и 7 в массив и получу первый элемент, это будет 4.
(2) Если я добавлю пять элементов (которые можно сравнивать) в структуру данных, то они всегда будут отсортированы по некоторым критериям. То есть, если критерии увеличивают величину, и я помещаю 4, 6, 2 и 7 в эту структуру, и я получаю первый элемент, это будет 2.
(3) Если я добавлю пять элементов в структуру данных, я не смогу выполнить какую-либо операцию, которая бы обеспечивала мне возврат первого элемента, который я в нее вставил.
(4) Если я добавлю в него пять элементов, то добавление любых элементов, уже находящихся в структуре, не окажет влияния на структуру.
РЕДАКТИРОВАТЬ: Я не спрашиваю имена структур данных, которые будут иметь эти свойства. Один будет похож на List, 2 будет двоичным деревом поиска или чем-то еще, 3 будет Hash, а четыре будет HashSet или многими другими реализациями коллекций, которые не допускают дублирования. Я спрашиваю имена свойств. Например, способность сказать «Для этой задачи нам нужно использовать упорядоченную структуру данных ...»