本文整理汇总了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);
}
}
示例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);
}