Мне нужно затруднить ключ и значение в C, как мы использовали в C ++, используя карту.
Пожалуйста, поделитесь самым простым примером для хранения уникального ключа и значения в магазине в c. ключ может быть любой строкой, а значение будет строкой.
Спасибо
Создание хэш-карты требует небольшой работы, но, безусловно, это интересная вещь.
Общий подход к построению хэш-карты — создать массив ковши который содержит ключ и значение. Однако эта структура не способна справляться с коллизиями. Столкновение между двумя значениями может возникнуть, когда разные ключи присваиваются хэш-функцией одному и тому же значению. Для решения этой проблемы в корзину добавляется третье поле, обычно указатель. При возникновении коллизии новое значение добавляется в структуру данных, указанную третьим полем. Обычно используется связанный список или двоичные деревья. Для получения дополнительной информации о том, как решить столкновение, прочитайте это ссылка на сайт.
Пример структуры хэш-карты описан выше. Обратите внимание, что существует столкновение с индексом 153:
Для доступа к хеш-таблице к ключу применяется пользовательская хеш-функция. Возвращение хеш-функции представляет собой целое число, которое идентифицирует местоположение индекса массива. Наконец, вы проверяете, совпадают ли ключи (используемые для доступа к элементу и хранящиеся в массиве по индексу, возвращенному хеш-функцией). Если они совпадают, вы нашли правильный элемент.
Это всего лишь пример, вы можете найти различные способы реализации хэш-карты.
Я бы предложил проверить эти пример, exmaple_2. Кроме того, этот вопрос уже задавался Вот.
это учебник, который шаг за шагом объясняет, как создать хэш-карту в C.
Других решений пока нет …