create_haxi.c

来自「深度优先搜索二叉树」· C语言 代码 · 共 62 行

C
62
字号
#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 + =
减小字号Ctrl + -
显示快捷键?