数据结构,Huffman算法,里面如何选择最小的重的算法有疑问?

DBZ002 发布于 2016/11/16 21:33
阅读 166
收藏 0

收藏!数据建模最全知识体系解读!>>>

void select(HuffmanTree *ht,int n, int *s1, int *s2)
{
int i;
int min;
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0)
{
min = i;
i = n+1;//break 
}
}
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0)
{
if((*ht)[i].weight < (*ht)[min].weight)
min = i;
}
}
*s1 = min;
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0 && i!=(*s1))
{
min = i;
i = n+1;
}
}
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0 && i!=(*s1))
{
if((*ht)[i].weight < (*ht)[min].weight)
min = i;
}
}
*s2 = min;
}
//我所理解的   Huffman树传进去,每次返回的s1 s2都是一样的  求解释
加载中
返回顶部
顶部