• C++哈希表头文件

    #ifndef _HASHTABLE_H_
    #define _HASHTABLE_H_
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    typedef
    enum {
        Empty, Active, Deleted
    }kindofitem;
    
    typedef struct
    {
        int key;
    }datatype;
    
    typedef struct{
        datatype data;
        kindofitem info;
    }hashitem;
    
    typedef struct{
        hashitem* arr;
        int table_size;
        int current_size;
    }hashtable;
    
    int initiate(hashtable* hash, int size);//初始化哈希表
    int find(hashtable* hash, datatype x);//查找x元素对应的关键字
    int insert(hashtable* hash, datatype x);//像哈希表中插入数组元素x,及设置它对应的关键字
    int deleted(hashtable* hash, datatype x);//从哈希表中删除x数据元素
    void destroy(hashtable* hash);//撤销函数
    /*
    int main()
    {
    
    system("pause");
    return 0;
    }
    */
    int initiate(hashtable* hash, int size)
    {
        hash->arr = (hashitem*)malloc(sizeof(hashitem)*size);//初始化,该数组
        hash->table_size = size;
        if (hash->arr == NULL)
        {
            cout << "初始化失败" << endl;
            return 0;
        }
        else
        {
            hash->current_size = 0;
            return 1;
        }
    }
    
    int find(hashtable* hash, datatype x)//查找x元素对应的关键字
    {
        int i = x.key%hash->table_size;
        int j = i;
        while (hash->arr[j].info == Active&&hash->arr[j].data.key != x.key)
        {
            j = (j + 1)&hash->table_size;//用哈希冲突方法继续查找
            if (j == i)
            {
                cout << "遍历此哈希表,没有找到" << endl;
                return -hash->table_size;
            }
        }
        if (hash->arr[j].info == Active)
        {
            return j;
        }
        else{
            return -j;
        }
    }
    
    int insert(hashtable* hash, datatype x)
    {
        int i = find(hash, x);
        if (i > 0)
        {
            cout << "该数据元素已经存在了!" << endl;
            return 0;
        }
    
        else if (i != -hash->table_size)
        {
            hash->arr[-i].data = x;
            hash->arr[-i].info = Active;
            hash->current_size++;
            return 1;
        }
        else{
            return 0;
        }
    }
    
    int deleted(hashtable* hash, datatype x)
    {
        int i = find(hash, x);
        if (i > 0)
        {
            hash->arr[i].info = Deleted;
            hash->current_size--;
            return 1;
        }
        else{
            cout << "没有这个元素,无法删除!" << endl;
            return 0;
        }
    }
    
    void destroy(hashtable* hash)
    {
        delete[]hash->arr;
    }
    #endif
    相关文章
    相关标签/搜索
    4337铁算开奖结果果 小说 内乡县| 舞钢市| 固原市| 乌拉特前旗| 宿州市| 黄浦区| 青田县| 迁西县| 菏泽市| 永德县| 伽师县| 新巴尔虎右旗| 邵东县| 贡嘎县| 浮山县| 纳雍县| 隆子县| 宜州市| 岳西县| 房山区| 台江县| 勃利县| 文水县| 磐安县| 和政县| 遂川县| 平远县| 通许县| 泊头市| 南川市| 精河县| 类乌齐县| 陆川县| 广丰县| 凌海市| 大连市| 江孜县| 龙山县| 天水市| 会宁县| 延川县| 道孚县| 阳原县| 阿拉善右旗| 潮安县| 米易县| 东兴市| 中阳县| 桑日县| 忻城县| 海盐县| 仁怀市| 桐柏县| 中卫市| 兴安县| 闸北区| 莆田市| 竹溪县| 英德市| 治县。| 南雄市| 岑巩县| 通山县| 壶关县| 江永县| 聊城市| 内丘县| 漠河县| 龙陵县| 盐山县| 平远县| 碌曲县| 湖口县| 仁怀市| 太原市| 清河县| 漳州市| 泸水县| 库车县| 九龙县| 和平县| 黑龙江省| 望谟县| 屏东县| 灌南县| 本溪市| 秦皇岛市| 苗栗县| 塔城市| 皮山县| 岳池县| 梓潼县| 德保县| 西华县| 遂昌县| 泽州县| 昌吉市| 万安县| 乌恰县| 睢宁县| 安乡县| 桂阳县| 德阳市| 凤山县| 兴业县| 宿州市| 洛隆县| 宝应县| 青田县| 汤阴县| 金门县| 陇西县| 澄江县| 德惠市| 奉节县| 乌鲁木齐县| 康定县| 科技| 四会市| 清水县| 莱阳市| 花垣县| 新晃| 灌云县| 屏山县| 武川县| 宁波市| 灵川县| 江源县| 绩溪县| 兴城市| 德庆县| 叙永县| 稷山县| 五大连池市| 岚皋县| 航空| 旬邑县| 西峡县| 隆化县| 修文县| 浮山县| 孙吴县| 宣武区| 杭锦后旗| 开封市| 固镇县| 巍山| 元朗区| 乌拉特中旗| 万年县| 高州市| 桓台县| 崇文区| 黑山县| 交城县| 双江| 开鲁县| 巫山县| 锡林浩特市| 澳门| 崇仁县| 泾阳县| 寿阳县| 靖西县| 定襄县| 买车| 五华县| 集安市| 平邑县| 手机| 青冈县| 瓦房店市| 光泽县| 鸡西市| 凤台县| 当雄县| 祥云县| 宾阳县| 蛟河市| 政和县| 上饶县| 固始县| 南丰县| 漠河县| 平泉县| 开远市| 当涂县| 始兴县| 托克托县| 苏州市| 阿尔山市| 惠州市| 大石桥市| 商南县| 文山县| 永胜县| 射洪县| 洞头县| 廊坊市| 常州市| 朝阳市| 尉犁县| 永定县| 甘德县| 濮阳县| 桑植县| 福海县| 鄂温| 介休市| 濮阳市| 枣阳市| 溆浦县| 星子县| 庄河市| 德保县| 长岭县| 开平市| 晋江市| 连平县| 临海市| 宿州市| 临城县| 慈溪市| 轮台县| 扶风县| 石首市| 宜兰县| 铅山县| 叙永县| 始兴县| 九江县| 武义县| 隆安县| 磐安县| 林西县| 丽江市| 淮南市| 肥西县| 海伦市| 扶余县| 三亚市| 化州市| 沅江市| 潼南县| 昌乐县| 南昌县| 化德县| 麻江县| 民权县| 嘉兴市| 常州市| 且末县| 红原县| 卓尼县| 五原县| 阿拉善右旗| 五寨县| 郯城县| 西贡区| 沂南县| 昆明市| 高唐县| 巨野县| 广德县| 西盟| 阿拉善盟| 望城县| 阜阳市| 云龙县| 黄梅县| 紫云| 密云县| 当涂县| 荣成市| 康平县| 襄城县| 永昌县| 镶黄旗| 长阳| 岗巴县| 红安县| 宁阳县| 安阳县| 岳阳市| 峨山| 张家川| 罗田县| 锦州市| 泾川县| 辽阳县| 武汉市| 连州市| 武威市| 康平县| 衡阳市| 泗水县| 高青县| 司法| 顺义区| 金溪县| 高清| 儋州市| 枝江市| 大连市| 田东县| 饶阳县| 镇远县| 广东省| 潼关县| 大同市| 太白县| 格尔木市| 岳阳县| 西华县| 深圳市| 靖边县| 崇左市| 湖北省| 彭水| 光泽县| 泰顺县| 汽车| 蒲江县| 洪洞县| 泸水县| 巴中市| 鹤岗市| 娱乐| 河曲县| 偃师市| 沾益县| 榆树市| 山东| 德州市| 北海市| 日土县| 五华县| 新余市| 新闻| 庆阳市| 泗水县| 治县。| 土默特右旗| 乌兰察布市| 文化| 樟树市| 秭归县| 兴化市| 梁山县| 防城港市| 金山区| 广德县| 库伦旗| 东光县| 阿拉善盟| 织金县| 托克逊县| 沧源| 青浦区| 开化县| 日土县| 海口市| 通榆县| 逊克县| 凯里市| 登封市| 霍林郭勒市| 巢湖市| 封开县| 安多县| 疏勒县| 徐汇区| 连平县| 江北区| 中方县| 高唐县| 宜阳县| 奉节县| 太谷县| 元朗区| 留坝县| 夏邑县| 怀仁县| 富阳市| 牙克石市| 德惠市| 广东省| 镇原县| 淮安市| 水富县| 玉门市| 广宗县| 铜陵市| 长沙市| 万州区| 井陉县| 普洱| 彭州市| 太和县| 琼结县| 南召县| 阳城县| 天等县| 顺昌县| 乌兰县| 黑龙江省| 于田县| 绵竹市| 专栏| 富川| 庆安县| 东源县| 区。| 公安县| 海口市| 比如县| 津市市| 巴东县| 万荣县| 阿坝县| 刚察县| 甘孜县| 若羌县| 山东省| 晋中市| 嘉鱼县| 师宗县| 肃北| 乌兰察布市| 讷河市| 曲阜市| 澄迈县| 托克逊县| 广灵县| 偃师市| 永州市| 保靖县| 天峨县| 海南省| 营口市| 北安市| 通化市| 乃东县| 潞城市| 祁东县| 柳林县| 区。| 盖州市| 平潭县| 南澳县| 大荔县| 班戈县| 驻马店市| 札达县| 亚东县| 留坝县| 长武县| 巴楚县| 桂阳县| 唐山市| 伊金霍洛旗| 乌拉特前旗| 尉氏县| 柳林县| 衡山县| 盐城市| 庆安县| 利辛县| 临朐县| 岳池县| 昌乐县| 游戏| 秦皇岛市| 灵川县| 清远市| 遵义县| 左贡县| 汉沽区| 策勒县| 蓬溪县| 蓬莱市| 彩票| 陕西省| 华坪县| 青河县| 伽师县| 新平| 达尔| 增城市| 防城港市| 余江县| 塘沽区| 周宁县| 安庆市| 巫山县| 衡水市| 疏勒县| 桃园市| 新泰市| 留坝县| 黄陵县| 磴口县| 正宁县| 茌平县| 三江| 阿拉善右旗| 密云县| 虎林市| 樟树市| 黄梅县| 云阳县| 子洲县| 来凤县| 郑州市| 兴城市| 秦安县| 镇平县| 浦北县| 绥芬河市| 乐东| 湖南省| 镇沅| 武邑县| 漳平市| 陆丰市| 张家口市| 安徽省| 从化市| 大邑县| 湟源县| 黄龙县| 渭南市| 青海省| 织金县| 达尔| 潮州市| 蒙城县| 交城县| 扶绥县| 鄂伦春自治旗| 吴忠市| 阿鲁科尔沁旗| 长治县| 遂平县| 西贡区| 缙云县| 遂平县| 四会市| 乌恰县| 温泉县| 江油市| 綦江县| 开平市| 怀远县| 千阳县| 遂平县| 曲沃县| 江津市| 沙河市| 霍城县| 南江县| 龙江县| 阳新县| 高邑县| 镇江市| 九龙坡区| 县级市| 彭阳县| 岗巴县| 冷水江市| 满洲里市| 阿坝县| 枣阳市| 南安市| 宝山区| 康乐县| 大冶市| 昌图县| 隆安县| 山东| 稻城县| 泗洪县| 黄浦区| 江陵县| 手游| 奉化市| 东源县| 镇原县| 峨山| 克拉玛依市| 慈溪市| 全椒县| 句容市| 青龙| 阿克苏市| 浠水县| 富阳市| 新营市| 甘孜县| 嘉荫县| 美姑县| 巴里| 晋州市| 五华县| 金秀| 天镇县| 肇源县| 诸暨市| 高安市| 榆树市| 汪清县| 辽中县| 吉木萨尔县| 宽甸| http://punpsk.fit http://wap.nirhrb.fit http://jkgrvy.fit http://m.tszaxt.fit http://www.yooovs.fit http://wap.qeherz.fit http://wap.xnleaz.fit http://fpgzcc.fit http://www.rjqkqi.fit http://www.aktxlc.fit http://m.dthvxw.fit http://m.zmccms.fit http://m.rpycgq.fit http://www.ycyqow.fit http://m.kllmfg.fit http://m.oyhwmv.fit http://m.ksnhcg.fit http://www.duhbsf.fit