Допустим, я направляю непустые строки (char [] / char * s) в мою программу.Я хотел бы создать их набор.То есть для любого элемента a в наборе S a уникален в S.
Я думал, что подойти к этому можно несколькими способами, но столкнулся с проблемами.
Если бы я зналколичество элементов n Я хотел бы прочитать, я мог бы просто создать хеш-таблицу со всеми элементами, начинающимися с нуля, одинакового размера и, если произошла коллизия, не вставлять ее в эту таблицу.Когда вставки завершатся, я бы перебрал массив хеш-таблицы, посчитал ненулевые значения, размер, а затем создал массив этого размера, а затем скопировал в него все значения.
Я мог быиспользуйте только один массив и измените его размер перед добавлением элемента, используя алгоритм поиска, чтобы проверить, существует ли элемент, прежде чем изменять / добавлять его.
Я понимаю, что второй метод будет работать, но потому чтоэлементы не могут быть отсортированы, также может потребоваться очень много времени для больших входных данных из-за выбора алгоритма поиска и изменения размера, независимо от того.
Любые входные данные приветствуются.Пожалуйста, не стесняйтесь задавать вопросы в поле для комментариев ниже, если вам нужна дополнительная информация.Библиотеки были бы очень полезны!(Поиск в Google "Наборы в C" и подобные вещи не очень помогает.)