散列表

原创 2007年09月28日 00:51:00
/***************************
 *文件名: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;

}
 

相关文章推荐

散列表的描述及其应用

  • 2014年12月28日 11:30
  • 38KB
  • 下载

散列表的设计与实现

  • 2013年11月07日 19:07
  • 24KB
  • 下载

散列表的C语言实现-分离链接法

一:散列表的定义: 散列表的实现常常叫做散列,散列是一种用于以常数平均时间执行插入,查找,删除的技术,但是,那些需要元素间任何排序信息的操作将不会得到支持,如findmin,findmax等等。散列...

散列表之链接法解决冲突

  • 2015年06月14日 10:19
  • 8KB
  • 下载

散列表的应用:插队买票

  • 2010年05月28日 18:16
  • 11KB
  • 下载

STL源码剖析——散列表hashtable

与前面介绍的底层机制基于红黑树RB-Tree容器不同,本文介绍的是哈希表hash table,在SGI STL中,给出了底层机制基于哈希表的相关容器的介绍,这里介绍hash table的源码剖析,有利...

数据结构—散列表(Hash table,也叫哈希表)

散列表(Hash table,也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)的比较操作。 ...

散列表完成要求

  • 2014年06月30日 13:57
  • 69KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:散列表
举报原因:
原因补充:

(最多只允许输入30个字)