Ori de câte ori încercăm să facem o mică problemă legată de arbori binari este nevoie de vârstele să scrie codul de bază pentru a popula o suficient de mare arbore binar. Vreau să aibă un cod de mic pentru a construi rapid un arbore binar de căutare inițializate cu valori aleatoare.
a crea rapid un arbore binar în C #
voturi
1
Întrebat 14/07/2011 la 00:10 2011-07-14 00:10
sursa de către utilizator Sriwantha Attanayake
În alte limbi...
sursa de către utilizator Sriwantha Attanayake
În alte limbi...
1 răspunsuri
voturi 1
1
static void Main(string[] args)
{
int numberOfNodes = 10;
Random rand = new Random();
int[] randomValues = Enumerable.Repeat(0, numberOfNodes).Select(i => rand.Next(0, 100)).ToArray();
//sort the array
int[] binaryTreeValues = (from x in randomValues orderby x select x).ToArray();
BNode root = null;
Construct(ref root, ref binaryTreeValues, 0, binaryTreeValues.Length - 1);
}
public static void Construct(ref BNode root, ref int[] array, int start, int end)
{
if (start > end)
{
root = null;
}
else if (start == end)
{
root = new BNode(array[start]);
}
else
{
int split = (start + end) / 2;
root = new BNode(array[split]);
Construct(ref root.Left, ref array, start, split - 1);
Construct(ref root.Right, ref array, split + 1, end);
}
}
public class BNode
{
public int ID;
public int Level;
public BNode Left;
public BNode Right;
public BNode(int ID)
{
this.ID = ID;
}
public override string ToString()
{
return this.ID.ToString();
}
}
Cu respect, Sriwantha Sri Aravinda