zoukankan      html  css  js  c++  java
  • 哈希表

    #include <stdio.h>
    #define HASH_LEN 13
    #define TABLE_LEN 8
    int data[TABLE_LEN]={69,65,90,37,92,6,28,54}; //原始数据 
    int hash[HASH_LEN]={0};//哈希表,初始化为0 
    void InsertHash(int hash[],int m,int data) 
    {
        int i;
        i=data % 13;//计算哈希地址 
        while(hash[i]) //元素位置已被占用
            i=(++i) % m; //线性探测法解决冲突,i加1向后移动
        hash[i]=data;
    }
    void CreateHash(int hash[],int m,int data[],int n)
    {
        int i;
        for(i=0;i<n;i++) //循环将原始数据保存到哈希表中 
            InsertHash(hash,m,data[i]); 
    }
    int HashSearch(int hash[],int m,int key)
    {
        int i;
        i=key % 13;//计算哈希地址 
        while(hash[i] && hash[i]!=key) //判断是否冲突 
            i=(++i) % m; //线性探测法解决冲突
        if(hash[i]==0) //查找到开放单元0,表示查找失败 
            return -1;//返回失败值 
        else//查找成功 
            return i;//返回对应元素的下标 
    }
  • 相关阅读:
    每种特定的迭代器如何使用
    常量迭代器
    容器迭代器
    三十分钟掌握STL
    高快省的排序算法
    FloatTest32 Example
    /浮点数的比较
    java第一天
    ACwing 898
    POJ 3268
  • 原文地址:https://www.cnblogs.com/yaowen/p/4489872.html
Copyright © 2011-2022 走看看