关闭

散列表

327人阅读 评论(0) 收藏 举报
/***************************
 *文件名:hash.cpp
 *功能:散列表
 *创建日期:2007-9-27
**************************
*/


#include 
<iostream>
using namespace std;

const int m = 11;

int h(int k, int i)
{
    
return (k % m + i) % m;
}


int Insert_hash(int ar[], int k)
{
    
int i, j;

    i 
= 0;
    
while( i < m )
    
{
        j 
= h(k, i);
        
if(ar[j] == -1)
        
{
            ar[j] 
= k;
            
return j;            
        }

        
else
            
++i;
    }

    
    
return -1;
}


void print(int a[], int n)
{
    
int *= a + n;  // b = a + 4 * n; 因为一个int占四个字节长度
    cout << *<< ' ';
    
while++!= b )
        cout 
<< *<< ' ';
}


// 初始化函数,将数组 a中元素初始化为v, n 为数组大小
void Init(int a[],int n, int v)
{
    
int *= a + n;

    
*= v;
    
while++!= b )
        
*= v;
}


int main()
{
    
int s[] = 10223141528178859 };
    cout 
<< "s : ";
    print( s, 
sizeof(s) / sizeof(s[0]) );
    cout 
<< endl;

    
int hashtable[m];
    Init(hashtable, 
sizeof(hashtable) / sizeof(hashtable[0]), -1);

    
for(int i = 0; i < sizeof(s) / sizeof(s[0]); i++)
        Insert_hash(hashtable, s[i]);

    cout 
<< "hashtable : ";
    print( hashtable, 
sizeof(hashtable) / sizeof(hashtable[0]) );
    cout 
<< endl;

    
return 0;

}
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:109707次
    • 积分:1205
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:8篇
    • 译文:0篇
    • 评论:15条
    纯属八卦
    名家博客