📄 create_haxi.c
字号:
#include "head.h"
void create_haxi(int array[],JD hafu[])
{
int i;
int j;
int value1,value2;
int position1,position2;
int k;
//初始化数值
for(i = 0; i < 2*N - 1;i++)
{
hafu[i].left = 0;
hafu[i].right = 0;
hafu[i].parent = 0;
if(i < N)
{
hafu[i].value = array[i];
}
else
{
hafu[i].value = 0;
}
}
//求解哈希表值
for(i = 0;i < N - 1;i++)//只需要0 ~ M-1趟
{
value1 = value2 = MAX;
position1 = position2 = 0;
for(j = 0;j < N + i;j++)
{
if((hafu[j].parent == 0)&&(hafu[j].value < value1))
{
value2 = value1;
position2 = position1;
position1 = j;
value1 = hafu[j].value;
}
else if((hafu[j].parent == 0)&&(hafu[j].value < value2))
{
value2 = hafu[j].value;
position2 = j;
}
}
k = N + i;
hafu[k].value = value1 + value2;
hafu[k].left = position1;
hafu[k].right = position2;
hafu[position1].parent = k;
hafu[position2].parent = k;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -