当前位置: 首页>>代码示例>>C#>>正文


C# Node.comute方法代码示例

本文整理汇总了C#中System.Data.Node.comute方法的典型用法代码示例。如果您正苦于以下问题:C# Node.comute方法的具体用法?C# Node.comute怎么用?C# Node.comute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Data.Node的用法示例。


在下文中一共展示了Node.comute方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Hafman

        public void Hafman()
        {
            /*Построение таблицы кодов*/
                List<Node> tree = new List<Node>();
                foreach (Symbol t in abc)
                {
                    Node temp = new Node();
                    temp.element.Add(t);
                    temp.comute();
                    tree.Add(temp);
                }

                List<Node> nodes = new List<Node>();
                foreach (Node t in tree)
                {
                     nodes.Add(t);
                }
                HafmanTree(ref tree);

            foreach (Node t in nodes)
            {
                Node temp = t;
                int index=Search(t.element[0].character + "");
                int i = 0;
                while (temp.element.Count != abc.Count)
                {
                    abc[index].code += temp.bit;
                    temp = temp.parent;

                    i++;
                    //if (i==4)
                       // MessageBox.Show(temp.sumChance+ "");

                }

                char[] arr = abc[index].code.ToCharArray();
                Array.Reverse(arr);
                abc[index].code=new string(arr);
            }
        }
开发者ID:Nibolg,项目名称:Visual-Studio,代码行数:40,代码来源:Form1.cs

示例2: HafmanTree

        public void HafmanTree(ref List<Node> tree)
        {
            bool flag = false;
            foreach (Node t in tree) {
                if (t.element.Count == abc.Count)
                    flag = true;
                //MessageBox.Show(t.element.Count + "");

            }
            if (flag)
                return;
            /*Выбор  новой вершины дерева, формирование дерева*/
            Node min1=null, min2=null;
            foreach (Node t in tree)
            {
                if (!t.flag)
                {
                    min1 = t;
                    break;
                }

            }
            foreach (Node t in tree)
            {
                if (!t.flag && t != min1)
                {
                    min2 = t;
                    break;
                }

            }
            foreach (Node t in tree)
            {
                if (t.sumChance < min1.sumChance && t != min2 && !t.flag)
                    min1 = t;

            }
            foreach (Node t in tree)
            {
                if (t.sumChance < min2.sumChance && t != min1 && !t.flag)
                    min2 = t;

            }

            Node z = new Node();
            foreach (Symbol t in min1.element)
            {
                z.element.Add(t);

            }
            foreach (Symbol t in min2.element)
            {
                z.element.Add(t);

            }
            z.comute();

            min1.parent = z;
            min2.parent = z;
            min1.bit = "0";
            min2.bit = "1";
            min1.flag = true;
            min2.flag = true;

            tree.Add(z);
               //
            HafmanTree(ref tree);
        }
开发者ID:Nibolg,项目名称:Visual-Studio,代码行数:68,代码来源:Form1.cs


注:本文中的System.Data.Node.comute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。