哈希拉链法(数据结构与算法)C/C++
答案:2 悬赏:10 手机版
解决时间 2021-03-26 04:15
- 提问者网友:喧嚣尘世
- 2021-03-25 05:01
哈希拉链法(数据结构与算法)C/C++
最佳答案
- 五星知识达人网友:封刀令
- 2021-03-25 05:09
#include
#include
#include int const INDEXBOX=7;
int const MAXNUM=13;
void creat_table(int);
void print_data(int); struct node
{
int value;
struct node *next;
}; typedef struct node node;
typedef node *link; node index_table[INDEXBOX]; void main()
{
int data[MAXNUM];
srand(time(NULL));
for (int i=0; i {
index_table[i].value=-1;
index_table[i].next=NULL;
}
printf("Former Data:\n");
for (i=0; i {
data[i]=rand()%30+1;
printf("[%2d] ",data[i]);
if ((i+1)%8==0) putchar('\n');
}
putchar('\n');
printf("Hash List:\n");
for (i=0; i creat_table(data[i]);
for (i=0; i print_data(i);
putchar('\n');
} void creat_table(int value)
{
link new_node;
link current_node;
int hash;
hash=value%INDEXBOX;
new_node=(link)malloc(sizeof(node));
current_node=(link)malloc(sizeof(node));
new_node->value=value;
new_node->next=NULL;
*current_node=index_table[hash];
if (current_node->next==NULL)
index_table[hash].next=new_node;
else
while (current_node->next!=NULL)
current_node=current_node->next;
current_node->next=new_node;
} void print_data(int value)
{
link head;
int i=0;
head=index_table[value].next;
printf("%2d\t",value);
while (head!=NULL)
{
printf("[%2d]",head->value);
printf("-");
i++;
if (i%8==7)
putchar('\n');
head=head->next;
}
printf("\b\n");
}
#include
#include
int const MAXNUM=13;
void creat_table(int);
void print_data(int); struct node
{
int value;
struct node *next;
}; typedef struct node node;
typedef node *link; node index_table[INDEXBOX]; void main()
{
int data[MAXNUM];
srand(time(NULL));
for (int i=0; i
index_table[i].value=-1;
index_table[i].next=NULL;
}
printf("Former Data:\n");
for (i=0; i
data[i]=rand()%30+1;
printf("[%2d] ",data[i]);
if ((i+1)%8==0) putchar('\n');
}
putchar('\n');
printf("Hash List:\n");
for (i=0; i
for (i=0; i
putchar('\n');
} void creat_table(int value)
{
link new_node;
link current_node;
int hash;
hash=value%INDEXBOX;
new_node=(link)malloc(sizeof(node));
current_node=(link)malloc(sizeof(node));
new_node->value=value;
new_node->next=NULL;
*current_node=index_table[hash];
if (current_node->next==NULL)
index_table[hash].next=new_node;
else
while (current_node->next!=NULL)
current_node=current_node->next;
current_node->next=new_node;
} void print_data(int value)
{
link head;
int i=0;
head=index_table[value].next;
printf("%2d\t",value);
while (head!=NULL)
{
printf("[%2d]",head->value);
printf("-");
i++;
if (i%8==7)
putchar('\n');
head=head->next;
}
printf("\b\n");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯