Я хочу реализовать структуру данных пары ключевых значений в C. Любая идея?
Структура данных карты C
Ответ 1
Это - простая хеш-таблица в ANSI C. Он поддерживает рудиментарные функции вообще ожидаемый от хеш-таблицы:
- Вставка и извлечение ассоциаций ключ-значение
- Запрос о существовании ключа
- Возврат общего количества ассоциаций ключевых значений
- Перечисление всех ассоциаций ключевых значений
Надеюсь, это поможет!
Ответ 2
Если ваш ключ и значение имеют одинаковый тип данных, вы можете использовать двухмерный массив с 2 столбцами, где первым будет ваш столбец, а второй - данными. ИТ будет вести себя как карта, но временная сложность будет разной. Сложность времени: Поиск по) Вставить - хотите сохранить уникальный ключ, тогда O (n) еще O (1).
int map[N][2];
если вы хотите иметь пару ключевых значений другого типа, вы можете использовать структуру списка.
struct node
{
int key; //key part
string value; // value part
struct node *next;
};
Сложность времени: Поиск по) Вставить - хотите сохранить уникальный ключ, тогда O (n) еще O (1).
Ответ 3
Типичные функции карты также поддерживаются реализацией hashmap в libmba.
Я узнал об этом некоторое время назад, хотя я его не использовал. Вы также можете проверить проект библиотеки homepage.
Я надеюсь, что это может оказаться полезным для кого-то.