Подтвердить что ты не робот

Структура данных карты C

Я хочу реализовать структуру данных пары ключевых значений в C. Любая идея?

4b9b3361

Ответ 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.

Я надеюсь, что это может оказаться полезным для кого-то.