• 大小: 4.58KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: 其他
  • 标签: 其他  

资源简介


对于给定的一组整数和散列函数,分别采用线性探测法和拉链法处理冲突构造散列表,并在这两种方法构建的散列表中查找整数K,比较两种方法的时间和空间性能。

资源截图

代码片段和文件信息

# include 
# include 
# include 
# define max 100
typedef struct
{int key;
 char data;
}ElemType;     //定义结点类型

typedef struct
{ElemType elems[max];
 int len;
}HashTable;      //定义散列表类型

int stored[max];  //标志数组

typedef struct ElemNode{
int key;
ElemType data;
struct ElemNode *next;
}ElemNode;

typedef struct{
ElemNode *first;
int len;
}ElemHeaderhashtable[max];


HashTable initHashTable(int n)     //ht:散列表   n:散列表长度
{int i;HashTable ht;
 ht.len=n;
 for(i=0;i  stored[i]=0;
 return ht;
}

int Hash(HashTable htint k)
{return k%ht.len;}

HashTable insert(HashTable htint x)   //ht:散列表   ele:插入结点
{int iadd;
 i=Hash(htx);
 if(stored[i]==0)
 {ht.elems[i].key=x;
 stored[i]=1;}
 else {add=i;i=(i+1)%ht.len;
 while(i!=add&&stored[i]==1)  i=(i+1)%ht.len;
 if(stored[i]==0)
 {ht.elems[i].key=x;stored[i]=1;} 
 else printf(“error occurred!“);
 }
 return ht;
}

int search(HashTable htint x)  //ht:散列表 

评论

共有 条评论