加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

算法系列15天速成——第十三天 树操作【下】

发布时间:2020-03-14 19:11:13 所属栏目:安全 来源:站长网
导读:今天说下最后一种树,大家可否知道,文件压缩程序里面的核心结构,核心算法是什么?或许你知道,他就运用了赫夫曼树

//最后得出minIndex1和minindex2中实体的weight最小
                huffman[minIndex1].parent = i;
                huffman[minIndex2].parent = i;

huffman[i].left = minIndex1;
                huffman[i].right = minIndex2;

huffman[i].weight = huffman[minIndex1].weight + huffman[minIndex2].weight;
            }

return huffman;
        }
        #endregion

#region 选出叶子节点中最小的二个节点
        /// <summary>
/// 选出叶子节点中最小的二个节点
/// </summary>
/// <param></param>
/// <param>要查找的结点数</param>
/// <param></param>
/// <param></param>
        public void SelectNode(HuffmanTree[] huffman, int searchNodes, out int minIndex1, out int minIndex2)
        {
            HuffmanTree minNode1 = null;

HuffmanTree minNode2 = null;

//最小节点在赫夫曼树中的下标
            minIndex1 = minIndex2 = 0;

//查找范围
            for (int i = 0; i < searchNodes; i++)
            {
                ///只有独根树才能进入查找范围
                if (huffman[i].parent == 0)
                {
                    //如果为null,则认为当前实体为最小
                    if (minNode1 == null)
                    {
                        minIndex1 = i;

minNode1 = huffman[i];

continue;
                    }

//如果为null,则认为当前实体为最小
                    if (minNode2 == null)
                    {
                        minIndex2 = i;

minNode2 = huffman[i];

//交换一个位置,保证minIndex1为最小,为后面判断做准备
                        if (minNode1.weight > minNode2.weight)
                        {
                            //节点交换
                            var temp = minNode1;
                            minNode1 = minNode2;
                            minNode2 = temp;

//下标交换
                            var tempIndex = minIndex1;
                            minIndex1 = minIndex2;
                            minIndex2 = tempIndex;

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读