1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/icesky1stm-HashMap

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

#HashMap&List

1. В этом репозитории реализован базовый HashMap на C, а также список.

Используя механизм реализации HashMap в Java, была создана базовая реализация HashMap с поддержкой следующих функций:

  • Создание
  • Удаление
  • Добавление/Установка
  • Получение
  • Удаление
  • Проверка наличия
  • Вывод

Реализация списка поддерживает следующие функции:

  • Создание
  • Удаление
  • Добавление
  • Получение
  • Вывод

Методы

Хеш-алгоритм использует простой алгоритм хеширования BKDR из JDK Java. Также можно использовать алгоритмы хеширования от Blizzard One-Way-Hash или time33 из PHP.

Компиляция

Файлы XipHashMap.c и XipList.c могут быть скомпилированы командой make -f makefile.osc в библиотеку libkmaplib.so.

Файлы HashMap_test.c и List_test.c могут быть скомпилированы командой mk в исполняемые программы.

Код был написан в среде Cygwin; для Linux потребуется изменить команду cc -shared в makefile. Аналогично можно сделать это для Unix, чтобы получить динамическую библиотеку. Конечно, можно просто скопировать код.

Примечания

  1. При использовании этого кода, обратите внимание на необходимость включения заголовочного файла hashmap.h для объявления прототипов вызываемых функций, иначе могут возникнуть проблемы.### 5. Обновления Обновление 2016.08.01:
  2. Добавлен список.
  3. Расширена функциональность printf, теперь поддерживаются пользовательские функции для определения формата вывода.
  4. Добавлены поля malloc_flag для HashMap и списка, позволяющие контролировать выделение памяти для значений.
  5. На Linux проведены тесты на наличие утечек памяти с помощью valgrind, все найденные утечки исправлены.Обновление 2016.08.04:
  6. Для HashMap добавлены внешние функции XipHashMapNum и XipHashMapSize для проверки количества элементов и занимаемого размера соответственно.
  7. Для списка добавлены узлы элементов и поле для хранения размера каждого значения. Также добавлена внешняя функция XipListSize для проверки занимаемого размера списка.
  8. Исправлены возможные утечки памяти при работе с HashMap.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Хэш-карта и список написаны на языке C с использованием подхода, аналогичного Java JDK. Реализованы распространённые функции, поддерживается механизм выделения памяти для значений. Код проверен с помощью cppcheck и valgrind — проблем с утечкой памяти не обнаружено. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/icesky1stm-HashMap.git
git@api.gitlife.ru:oschina-mirror/icesky1stm-HashMap.git
oschina-mirror
icesky1stm-HashMap
icesky1stm-HashMap
master