麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#求解哈夫曼樹,實例代碼

2020-01-24 03:27:01
字體:
供稿:網(wǎng)友

復(fù)制代碼 代碼如下:

  class HuffmanTree
    {
        private Node[] data;
        public int LeafNum { get; set; }
        public Node this[int index]
        {
            get { return data[index]; }
            set { data[index] = value; }
        }
        public HuffmanTree(int n)
        {
            data = new Node[2 * n - 1];
            for (int i = 0; i < 2 * n - 1; i++)
            {
                data[i] = new Node();
            }
            LeafNum = n;
        }
        public void Create(List<int> list)
        {
            int min1;
            int min2;
            int tmp1, tmp2;
            for (int i = 0; i < list.Count; i++)
            {
                data[i].Weight = list[i];
            }              
            for (int i = 0; i < LeafNum-1; i++)
            {
                min1 = min2 = int.MaxValue;
                tmp1 = tmp2 = 0;

               //獲取數(shù)組中最小的2個值
                for (int j = 0; j < LeafNum + i; j++)
                {
                    if (data[j].Weight<min1&&data[j].Parent == -1)
                    {
                        min2 = min1;
                        tmp2 = tmp1;
                        min1 = data[j].Weight;
                        tmp1 = j;
                    }
                   else if (data[j].Weight < min2 && data[j].Parent == -1)
                    {
                        min2 = data[j].Weight;
                        tmp2 = j;
                    }                
                }
                data[tmp1].Parent = this.LeafNum + i;
                data[tmp2].Parent = this.LeafNum + i;
                data[this.LeafNum + i].Weight = data[tmp1].Weight + data[tmp2].Weight;
                data[this.LeafNum + i].LChild = tmp1;
                data[this.LeafNum + i].RChild = tmp2;
            }
        }


//樹的結(jié)點(樹是用數(shù)組保存的) 

public class Node
    {
        public int Weight { get; set; }//權(quán)值
        public int LChild { get; set; }//左孩子在數(shù)組中的位置
        public int RChild { get; set; }//右孩子在數(shù)組中的位置
        public int Parent { get; set; }//父節(jié)點在數(shù)組中的位置
        public Node()
        {
            Weight = 0;
            LChild = -1;
            RChild = -1;
            Parent = -1;//-1表示沒有
        }
        public Node(int weight,int lChild,int rChild,int parent )
        {
            this.Weight = weight;
            this.LChild = lChild;
            this.RChild = rChild;
            this.Parent = parent;
        }
    }

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一区二区午夜 | 玖草在线资源 | 欧美黄色试片 | 久久黄色影院 | 国内一区 | 国产一级午夜 | 法国极品成人h版 | 色毛片| 色综合777| 黄色免费在线网址 | 国产精选电影免费在线观看 | 国产乱弄| 久久一级| 一级做a爰性色毛片免费 | 污视频在线免费播放 | 国产精品久久久免费 | av亚洲在线观看 | 91精品国| 特级毛片a级毛片100免费 | 极品销魂一区二区三区 | 国产三级在线观看a | 日本在线播放一区二区三区 | 国产 一区| 麻豆一二区 | 97视频| 久久毛片| 免费放黄网站在线播放 | 久久久成人精品 | 久久九九热re6这里有精品 | 97人人草 | 日本高清无遮挡 | 成人勉费视频 | 国产日韩成人 | 一本到免费视频 | 少妇一级淫片免费看 | av在线免费不卡 | 欧美成a人片在线观看久 | 99视频有精品 | 欧美特黄一级高清免费的香蕉 | 欧美爱爱视频免费看 | av成人一区二区 |