select.cpp

来自「霍夫曼编码」· C++ 代码 · 共 46 行

CPP
46
字号
#include "StdAfx.h"

//在HT【1...a】中找出parent为0且weight最小的两个结点
void Select(HuffmanTree HT,int a,int &s1,int &s2)
{	
	int t,i,j,*temp;
	
	//temp的零号单元未用
	temp=(int*)malloc((a+1)*sizeof(int));
	
	for (j=1;j<=a;j++)       
	{
		if(HT[j].parent==0)
			temp[j]=HT[j].weight;
		else
			temp[j]=0;
	}
	
	j=0;
	while(temp[++j]==0);
	t=temp[j];
	s1=j;
	for (i=j+1;i<=a;i++)
	{
		if(temp[i]<t&&temp[i]!=0)
		{
			t=temp[i];
			s1=i;
		}
	}
	
	temp[s1]=0;
	
	j=0;
	while(temp[++j]==0);
	t=temp[j];
	s2=j;
	for (i=j+1;i<=a;i++)
	{
		if(temp[i]<t&&temp[i]!=0)
		{
			t=temp[i];
			s2=i;
		}
	}			
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?