<address id="1dp7b"></address>
<sub id="1dp7b"></sub>

      <sub id="1dp7b"></sub>

          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
          相关文章
          相关标签/搜索
          九龙心水三肖永不改料香港开奖结果_香港马会2020开奖结果_2020 最快开奖记录结果_小鱼儿玄机2站开奖 开奖结果 石棉县| 嫩江县| 彭阳县| 松阳县| 阿合奇县| 阿拉尔市| 沈丘县| 凤城市| 涪陵区| 绩溪县| 府谷县| 吉林市| 酒泉市| 平泉县| 七台河市| 城口县| 盐边县| 古浪县| 和政县| 基隆市| 山东省| 喀喇沁旗| 富锦市| 延安市| 岑巩县| 上杭县| 雷州市| 冕宁县| 龙山县| 上栗县| 珲春市| 天镇县| 东阳市| 武宁县| 贵溪市| 防城港市| 济南市| 寻乌县| 万源市| 洛川县| 北碚区| 蒙山县| 钟祥市| 晋江市| 昌乐县| 临沭县| 静安区| 海口市| 建湖县| 清原| 青神县| 准格尔旗| 千阳县| 宿州市| 深水埗区| 屯昌县| 左云县| 保德县| 株洲市| 当雄县| 伊宁市| 乌兰浩特市| 怀化市| 肇源县| 聂荣县| 甘南县| 湘潭县| 鄯善县| 金门县| 博白县| 措美县| 康保县| 准格尔旗| 高台县| 荥阳市| 吉水县| 武川县| 达日县| 冷水江市| 电白县| 灵丘县| 安塞县| 海城市| 潜江市| 柘城县| 临潭县| 雷山县| 合山市| 玛多县| 威宁| 普定县| 钦州市| 永嘉县| 安平县| 诏安县| 汉中市| 江安县| 辽阳市| 封开县| 简阳市| 延边| 宜兴市| 如东县| 辽中县| 威宁| 图们市| 昆山市| 永昌县| 芦山县| 平顺县| 新昌县| 来宾市| 酒泉市| 江陵县| 丰都县| 吉隆县| 英吉沙县| 洛宁县| 博罗县| 麟游县| 蕉岭县| 邻水| 榕江县| 南漳县| 延吉市| 米林县| 兴化市| 社旗县| 新河县| 新建县| 湾仔区| 大安市| 长兴县| 伊春市| 娱乐| 朝阳市| 凌海市| 石景山区| 平邑县| 乌拉特中旗| 昌江| 屏东市| 铜山县| 浦北县| 黑山县| 许昌县| 鹤庆县| 牟定县| 陇南市| 兰州市| 察雅县| 丽江市| 马山县| 卢氏县| 丹阳市| 铜鼓县| 萝北县| 库车县| 紫金县| 化德县| 武城县| 白朗县| 呼图壁县| 竹北市| 江西省| 饶阳县| 彰武县| 元氏县| 双江| 二连浩特市| 桦川县| 五华县| 全椒县| 盘山县| 镇康县| 扬中市| 竹山县| 吐鲁番市| 融水| 新昌县| 宿松县| 珲春市| 东乡县| 江永县| 肥东县| 白山市| 武鸣县| 稷山县| 安吉县| 定南县| 永泰县| 东港市| 建德市| 封丘县| 瑞昌市| 浑源县| 旬阳县| 临高县| 东平县| 策勒县| 临汾市| 苏州市| 永寿县| 河西区| 扎赉特旗| 科技| 社旗县| 湖口县| 应城市| 砀山县| 珲春市| 无极县| 手游| 抚顺县| 金沙县| 兰溪市| 彭阳县| 宝清县| 钦州市| 刚察县| 启东市| 巢湖市| 射阳县| 铁力市| 岚皋县| 东阳市| 泉州市| 商南县| 专栏| 扎囊县| 大方县| 大丰市| 酉阳| 东海县| 东海县| 葵青区| 金华市| 安西县| 响水县| 磐安县| 玉溪市| 鹤山市| 天柱县| 军事| 南溪县| 泰宁县| 高雄县| 长宁县| 黎城县| 宁晋县| 绍兴县| 广饶县| 改则县| 五常市| 新昌县| 师宗县| 天峻县| 佛教| 永平县| 来凤县| 万山特区| 兰溪市| 邵武市| 田阳县| 北流市| 大庆市| 云阳县| 双城市| 三河市| 宁安市| 津市市| 府谷县| 安平县| 沈阳市| 广安市| 钟山县| 将乐县| 铁力市| 张家界市| 绥江县| 泗洪县| 栾城县| 上饶市| 东莞市| 靖宇县| 梓潼县| 开封市| 开江县| 象山县| 堆龙德庆县| 三河市| 清丰县| 大埔县| 邢台县| 新竹市| 新源县| 西城区| 沙湾县| 永靖县| 勐海县| 大竹县| 栾城县| 兴仁县| 东源县| 梓潼县| 彰武县| 淮南市| 永顺县| 浑源县| 奇台县| 黑河市| 密山市| 商水县| 准格尔旗| 色达县| 兴义市| 镇江市| 四平市| 类乌齐县| 鹤山市| 梨树县| 安阳市| 东宁县| 信丰县| 江华| 宜宾县| 渝北区| 桃源县| 金川县| 远安县| 嘉定区| 高唐县| 集安市| 若羌县| 伊金霍洛旗| 唐海县| 勐海县| 渭南市| 金山区| 集安市| 江北区| 沧州市| 平湖市| 沙河市| 龙泉市| 万荣县| 上虞市| 达日县| 邻水| 克山县| 保靖县| 寿光市| 伊春市| 许昌县| 屏东县| 七台河市| 新营市| 宝山区| 峨边| 滨海县| 宿松县| 福鼎市| 乌拉特后旗| 泗阳县| 荔波县| 新宾| 保德县| 湘潭县| 泰兴市| 盐山县| 明水县| 开化县| 公安县| 沅陵县| 泗水县| 达州市| 临夏县| 南漳县| 漳平市| 瑞安市| 雷波县| 怀集县| 海城市| 辉县市| 安达市| 瑞丽市| 鹤峰县| 桃园市| 屏东市| 云安县| 玉林市| 罗城| 黄大仙区| 子长县| 凌云县| 陵川县| 玛沁县| 张家川| 黄龙县| 新密市| 建德市| 安陆市| 万全县| 丹寨县| 江达县| 康马县| 清流县| 桃江县| 阿拉善右旗| 福泉市| 灵武市| 宁南县| 崇明县| 东丽区| 霍城县| 寿阳县| 珲春市| 巍山| 右玉县| 贞丰县| 平罗县| 东丽区| 高淳县| 崇明县| 余干县| 江北区| 汤原县| 洪泽县| 尤溪县| 新平| 浮梁县| 贵溪市| 黄陵县| 平果县| 平罗县| 建瓯市| 曲麻莱县| 秀山| 盘山县| 丰都县| 文昌市| 资阳市| 贵州省| 阳西县| 泗洪县| 长治市| 边坝县| 廉江市| 孝义市| 保亭| 顺义区| 普宁市| 上林县| 噶尔县| 靖江市| 九寨沟县| 汝南县| 甘洛县| 新营市| 左权县| 五常市| 青阳县| 灵山县| 藁城市| 深州市| 儋州市| 汉沽区| 浪卡子县| 苏尼特左旗| 方城县| 九寨沟县| 习水县| 鸡泽县| 砀山县| 贵德县| 五莲县| 洛阳市| 纳雍县| 邹平县| 海门市| 长治县| 上饶市| 德安县| 塘沽区| 若尔盖县| 裕民县| 寿阳县| 西乡县| 玉林市| 兴义市| 蓬安县| 宣汉县| 陇川县| 武隆县| 嘉峪关市| 酉阳| 石阡县| 施甸县| 苍山县| 高雄县| 罗城| 莱芜市| 将乐县| 鱼台县| 武夷山市| 北碚区| 通化市| 龙口市| 依安县| 濮阳市| 聊城市| 宁乡县| 新绛县| 石家庄市| 得荣县| 肥城市| 泗洪县| 土默特右旗| 含山县| 林芝县| 牡丹江市| 临高县| 绩溪县| 西充县| 福泉市| 赣州市| 中阳县| 沽源县| 聊城市| 建宁县| 岱山县| 河西区| 万全县| 疏附县| 桑植县| 高雄市| 苍山县| 定结县| 武川县| 濮阳市| 沙坪坝区| 乌拉特前旗| 大冶市| 宜君县| 会理县| 海原县| 大厂| 泗阳县| 剑阁县| 阿拉善左旗| 泸溪县| 台中县| 赞皇县| 喀喇沁旗| 基隆市| 乌拉特前旗| 托里县| 上蔡县| 梅州市| 吉林省| 河间市| 仙游县| 台中县| 措美县| 夏邑县| 张家界市| 尤溪县| 瑞金市| 邢台县| 天津市| 大余县| 榆树市| 广南县| 宜阳县| 旬阳县| 兰溪市| 凉城县| 西宁市| 双城市| 旌德县| 和平区| 乐东| 富源县| 沛县| 汉川市| 敖汉旗| 灵武市| 绥化市| 启东市| 富民县| 丹棱县| 敦煌市| 怀宁县| 博爱县| 榆林市| 自治县| 红桥区| 融水| 林口县| 屏东市| 宝山区| 乌鲁木齐市| 南召县| 三明市| 阿拉善左旗| 连南| 崇左市| 霍州市| 青神县| 若尔盖县| 周至县| 高台县| 黑山县| 安达市| 大同县| http://bm1961xissz.fit http://m.nuvlzs.fit http://bfkcwd.fit http://www.qpmojc.fit http://m.wsbpje.fit http://fruwrl.fit http://m.bctcgm.fit http://wap.mebhlj.fit http://wap.jkgrvy.fit http://www.syvvag.fit http://vzwovo.fit http://m.wwfibh.fit http://wap.cpcxzn.fit http://www.nwsucj.fit http://kkqmtz.fit http://www.jidaxk.fit http://wap.tygubf.fit http://wap.ssjjje.fit