📄 10-6.c
字号:
#include "stdio.h"
#include <string.h>
#define MAX_CHAR 10 /*max number of characters in an identifier */
#define TABLE_SIZE 13 /*max table size = prime number*/
typedef struct info{
char key [MAX_CHAR ];
/* 其他数据 */
} element;
void init_table(element hashtable[ ])
{
int i ;
for ( i = 0 ; i < TABLE_SIZE ; i++ )
hashtable[i].key[0]=NULL ;
}
int transform ( char *key )
{/* 把key转换成一个自然数*/
int number = 0 ;
while ( *key )
number += *key++ ;
return number ;
}
int hash(char *key )
{
return (transform (key )%TABLE_SIZE ) ;
}
void linear_insert(element hashtable[],element item )
{/* 用线性查找,插入元素*/
int i,hash_value ;
hash_value = hash ( item.key ) ;
i = hash_value ;
while (strlen(hashtable[i].key ) ){
if ( !strcmp( hashtable[i].key,item.key ))
exit(1) ;
i = (i+1)%TABLE_SIZE ;
if (i == hash_value ){
printf ("哈希表已经满\n" ) ;
exit(1) ;
}
}
hashtable[i] = item ;
}
void main()
{
element hash_table[TABLE_SIZE];
element item;
linear_insert(hash_table,item);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -