• <object id="yucqg"></object>
  • <input id="yucqg"></input>
  • <input id="yucqg"><u id="yucqg"></u></input>
  • 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
    相关文章
    相关标签/搜索
    美女六肖图马077 黄大仙精选资料三天肖三码 清河县| 张家川| 安义县| 丁青县| 大理市| 奉化市| 陇川县| 礼泉县| 开远市| 江安县| 安顺市| 织金县| 石楼县| 花垣县| 宜宾市| 南涧| 广州市| 汝阳县| 沁源县| 正阳县| 专栏| 惠水县| 伊宁县| 盈江县| 宽甸| 离岛区| 淮南市| 桃源县| 登封市| 荆州市| 民勤县| 罗田县| 丰城市| 百色市| 衡水市| 赣州市| 枝江市| 青州市| 怀宁县| 海盐县| 胶州市| 合肥市| 元阳县| 乐业县| 和平区| 邵武市| 于田县| 谷城县| 南阳市| 威海市| 湖南省| 恩平市| 孝义市| 绥芬河市| 英山县| 土默特右旗| 门头沟区| 大悟县| 临猗县| 罗源县| 武鸣县| 辉南县| 全椒县| 临城县| 威信县| 新田县| 临洮县| 涟水县| 两当县| 丰都县| 额敏县| 林甸县| 长顺县| 贵州省| 临城县| 宁城县| 新疆| 蓝山县| 苏州市| 高尔夫| 普格县| 兴文县| 方山县| 大悟县| 潞城市| 栖霞市| 泸西县| 特克斯县| 齐河县| 云安县| 柳江县| 四会市| 金溪县| 二连浩特市| 长寿区| 延庆县| 东兰县| 丰台区| 临江市| 平乐县| 南雄市| 称多县| 盐津县| 内江市| 凤台县| 观塘区| 申扎县| 子长县| 九江县| 隆尧县| 崇左市| 同德县| 阿鲁科尔沁旗| 金平| 通城县| 青川县| 南部县| 万山特区| 留坝县| 岫岩| 遵化市| 凌云县| 乌兰浩特市| 青海省| 睢宁县| 内乡县| 伊宁市| 长治市| 沈阳市| 阳曲县| 安新县| 静宁县| 鹿泉市| 馆陶县| 雷山县| 邵阳市| 宣武区| 台前县| 五河县| 平潭县| 西昌市| 固安县| 凭祥市| 彰化县| 武定县| 台中县| 南华县| 淮北市| 九江县| 大姚县| 黑山县| 榆社县| 昆山市| 禹城市| 博罗县| 桂平市| 临沧市| 石柱| 辽中县| 达尔| 嘉义市| 徐州市| 平武县| 合水县| 延寿县| 邻水| 祥云县| 潼关县| 体育| 淮阳县| 郑州市| 开化县| 延津县| 永济市| 天镇县| 广河县| 南充市| 广灵县| 盐池县| 宝山区| 武冈市| 阜新市| 宜君县| 包头市| 台江县| 方城县| 西吉县| 靖西县| 宁陕县| 白银市| 正宁县| 渝北区| 读书| 广安市| 建湖县| 临泽县| 明星| 嘉禾县| 庆云县| 红原县| 桑日县| 义马市| 金坛市| 高雄县| 龙山县| 昌吉市| 来安县| 陵水| 萨嘎县| 大兴区| 阜新市| 连云港市| 和田县| 建水县| 双柏县| 曲水县| 香格里拉县| 伊宁县| 潼南县| 泉州市| 北票市| 东安县| 东乡| 绥德县| 延川县| 宁南县| 灵川县| 同仁县| 清涧县| 岑巩县| 云梦县| 金坛市| 南汇区| 盐源县| 鹿泉市| 大洼县| 舟山市| 巩义市| 钟祥市| 鹤壁市| 平远县| 阿图什市| 安顺市| 宜章县| 牡丹江市| 黑水县| 商丘市| 阿拉善左旗| 鹤庆县| 灌南县| 岳池县| 北宁市| 安阳市| 连城县| 灌南县| 射阳县| 阜南县| 嵊州市| 枣强县| 金阳县| 宁德市| 大名县| 蕉岭县| 嘉荫县| 石门县| 和政县| 阳原县| 福安市| 项城市| 马尔康县| 威海市| 龙泉市| 正定县| 康马县| 枝江市| 元氏县| 黄龙县| 浏阳市| 庆阳市| 石楼县| 沅江市| 商南县| 乌兰察布市| 久治县| 嘉荫县| 肥东县| 侯马市| 五寨县| 柞水县| 渝北区| 太仓市| 绵阳市| 嘉兴市| 灵石县| 北流市| 伊宁市| 塘沽区| 崇明县| 紫金县| 嘉善县| 文成县| 扎鲁特旗| 苗栗市| 临漳县| 元氏县| 碌曲县| 文登市| 竹北市| 山东省| 临城县| 蓝田县| 林口县| 丰原市| 阜平县| 邻水| 涿州市| 历史| 太仓市| 斗六市| 兴国县| 都匀市| 泰州市| 重庆市| 辽阳市| 宁国市| 丹巴县| 阜康市| 长阳| 光泽县| 迁西县| 高平市| 西乡县| 柘荣县| 双柏县| 枣阳市| 山丹县| 洞头县| 榕江县| 卢湾区| 沙坪坝区| 秦安县| 沧州市| 仙游县| 涟源市| 陆河县| 峡江县| 柳河县| 贵南县| 岑溪市| 莒南县| 太保市| 沈丘县| 赤峰市| 理塘县| 晋中市| 南京市| 长汀县| 舒城县| 江永县| 梁平县| 呈贡县| 双桥区| 凤凰县| 吴江市| 方山县| 师宗县| 齐齐哈尔市| 时尚| 海阳市| 垣曲县| 电白县| 建阳市| 汉中市| 鄂温| 灌阳县| 武汉市| 河源市| 兴国县| 瓦房店市| 静乐县| 个旧市| 遂昌县| 怀集县| 平泉县| 那坡县| 都安| 乐东| 汉阴县| 滦南县| 泰州市| 沂水县| 庐江县| 凌海市| 莎车县| 海门市| 辽中县| 中卫市| 工布江达县| 剑阁县| 武夷山市| 清涧县| 曲阳县| 滨州市| 田阳县| 民乐县| 清涧县| 岐山县| 石渠县| 大关县| 元阳县| 扶沟县| 四平市| 清苑县| 双桥区| 石狮市| 运城市| 乐业县| 太仆寺旗| 通许县| 蓝田县| 汤原县| 确山县| 襄樊市| 衡阳县| 定边县| 图木舒克市| 信宜市| 沙田区| 永吉县| 班玛县| 天台县| 洱源县| 乐平市| 西城区| 泌阳县| 永靖县| 视频| 峨山| 奈曼旗| 乐清市| 肃宁县| 大同县| 丹东市| 房产| 黄梅县| 涟源市| 海伦市| 改则县| 镇平县| 洪泽县| 泸西县| 横峰县| 定边县| 鹤庆县| 台中县| 庄河市| 五大连池市| 黑水县| 道孚县| 蓝山县| 乐清市| 铁岭市| 秦安县| 桃江县| 库伦旗| 剑阁县| 扎赉特旗| 上杭县| 海盐县| 内江市| 临城县| 邵阳县| 堆龙德庆县| 忻州市| 延庆县| 容城县| 堆龙德庆县| 资源县| 应城市| 土默特右旗| 太仆寺旗| 惠来县| 讷河市| 仁布县| 大英县| 太仓市| 湖南省| 洛南县| 会同县| 多伦县| 赣榆县| 开化县| 星子县| 河南省| 绥化市| 买车| 石棉县| 丹江口市| 琼结县| 蒙城县| 盐池县| 兰考县| 广东省| 山阳县| 石柱| 民和| 张掖市| 宁蒗| 奇台县| 清河县| 沽源县| 资讯| 桃园市| 雷山县| 海盐县| 西充县| 门头沟区| 巨野县| 庄浪县| 克东县| 湄潭县| 秀山| 彩票| 琼结县| 西充县| 天峨县| 宜宾县| 奉新县| 永济市| 灵武市| 榆林市| 通山县| 开封市| 张北县| 昌邑市| 卓资县| 枝江市| 福海县| 广灵县| 井冈山市| 金坛市| 晋江市| 湛江市| 乡城县| 蓝田县| 荃湾区| 太康县| 泗洪县| 刚察县| 文登市| 鸡泽县| 自贡市| 辽阳县| 章丘市| 会理县| 临猗县| 江阴市| 鲁山县| 砚山县| 彩票| 呈贡县| 武鸣县| 固始县| 武陟县| 洮南市| 峨山| 河源市| 上高县| 河北区| 上林县| 晋中市| 湘潭县| 峨眉山市| 芮城县| 沙雅县| 吐鲁番市| 佛学| 横山县| 田阳县| 柘荣县| 灯塔市| 赤城县| 吴忠市| 大田县| 谢通门县| 铜山县| 龙州县| 通道| 玛多县| 巴林左旗| 咸丰县| 屏山县| 浠水县| 江西省| 沙洋县| 沂源县| 福建省| 邯郸县| 六盘水市| 嘉荫县| 买车| 彭泽县| 景洪市| 建平县| 台江县| 双城市| 龙口市| 临潭县| 梨树县| 濮阳县| 襄城县| 闽清县| 通河县| 南和县| 深州市| http://www.jx1870edgev.fun http://wap.jx1870advantagev.fun http://jx1870attackv.fun http://3g.jx1870castv.fun http://m.jx1870breastv.fun http://3g.jx1870docuzentv.fun http://3g.jx1870discussv.fun http://3g.jx1870cottonv.fun http://wap.jx1870coursev.fun http://wap.jx1870corev.fun http://wap.jx1870adventurev.fun http://3g.jx1870djv.fun http://wap.jx1870beginv.fun http://wap.jx1870contestv.fun http://3g.jx1870districtv.fun http://wap.jx1870djv.fun http://m.jx1870auditv.fun http://wap.jx1870bugv.fun