Набор, вероятно, является правильным абстрактным типом данных для этого, поскольку на самом деле единственная информация, которую он кодирует, - находится ли элемент внутри или нет.
Однако использование набора не определяет конкретную реализацию. В большинстве случаев вы должны быть в состоянии найти тип набора, реализованный с использованием хеширования, или некоторый тип древовидной структуры. Какой из них вы выберете, будет зависеть от того, будут ли вставляемые вами данные эффективно хэшироваться или упорядочены.
В некоторых библиотеках вы найдете наборы типов, которые реализованы с использованием типов карт библиотеки, но где значение игнорируется. ,Например, в rust тип стандартной библиотеки HashSet
реализован с использованием типа HashMap
.