12 Star 36 Fork 9

icesky1stm / HashMap

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

#HashMap&List

###1.本库使用了C语言实现了一个基本的hashmap,同时实现了一个list 参考java的hashmap实现机制,实现了C基本的

  •      hashmap实现,支持几种功能:
  •      1.新建
  •      2.销毁
  •      3.加入/设置
  •      4.获取
  •      5.删除
  •      6.判断是否存在
  •      7.打印

list实现,支持几种功能:

  •      1.新建
  •      2.销毁
  •      3:.加入
  •      4.获取
  •      5.打印

###2.哈希算法 哈希算法使用了JAVA的JDK中默认的simple BKDR hash algorithm 有需要的也可以替换成暴雪的One-Way-Hash或者PHP中的time33之类的

###3.编译方法 XipHashMap.c和XipList.c可以执行make -f makefile.osc编译成libkmaplib.so

HashMap_test.c和List_test.c 可以使用mk来编译成可执行程序

我是在cygwin环境下编写的,linux下要改一下makefile中的cc -shared命令, unix类似,可以生成动态库 当然也可以直接把代码copy

###4.注意事项 1).使用的时候,调用程序请注意包含头文件hashmap.h来声明调用函数原型 ,否则可能会导致

###5.更新说明 2016.08.01更新: 1)增加了list 2)扩展了printf,支持回调函数自己定义打印格式。 3)增加了hashmap和list的malloc_flag字段,可以控制是否在map或list中额外分配内存保存value 4)在linux下测试,使用valgrind进行了内存泄漏测试,并修正了所有内存泄漏问题。

2016.08.04更新: 1)为hashmap增加了XipHashMapNum和XipHashMapSize外部函数,可以检查当前元素个数,以及当前hashmap占用空间大小 2)修改list,增加element节点,增加每个value的size保存。同时新增XipListSize外部函数,检查当前list占用空间大小 3)修正了某些异常情况下,hashmap可能导致的内存泄漏问题。

The MIT License (MIT) Copyright (c) 2016 icesky1stm Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

使用C语言编写的hashmap&list,参考了javaJDK的写法,实现了常见功能,同时支持value的内存分配机制。代码使用cppcheck,valgrind检查过,无内存泄漏等问题. 展开 收起
C
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/icesky1stm/HashMap.git
git@gitee.com:icesky1stm/HashMap.git
icesky1stm
HashMap
HashMap
master

搜索帮助