static Tree<int> ParseTree() { var nodes = new Dictionary<int, Node<int>>(); Console.Write("Number of nodes:"); int n = int.Parse(Console.ReadLine()); Console.WriteLine("Start typing the node pairs separated by a single space"); for (int i = 0; i < n-1; i++) { var pair = Console.ReadLine().Split(); int first = int.Parse(pair[0]); int second = int.Parse(pair[1]); if (!nodes.ContainsKey(first)) { Node<int> parent = new Node<int>(first); nodes.Add(first, parent); } if (!nodes.ContainsKey(second)) { Node<int> newNode = new Node<int>(second); newNode.HasParent = true; nodes.Add(second,newNode); nodes[first].Children.Add(newNode); } nodes[first].Children.Add(nodes[second]); nodes[second].HasParent=true; } var root = nodes.First(x => x.Value.HasParent == false); var tree = new Tree<int>(root.Value); return tree; }
public static Tree<int> GenerateTreeFtomTreeNodes(TreeNode<int>[] nodeArray) { bool[] isChild = new bool[nodeArray.Length]; foreach (var node in nodeArray) { if (node != null) { foreach (var child in node) { isChild[child.Value] = true; } } } for (int i = 0; i < isChild.Length; i++) { if (!isChild[i]) { Tree<int> tree = new Tree<int>(i); GenerateTreeFromFoor(tree, nodeArray); return tree; } } throw new ArgumentException("No root!!!"); }
public void Add1ElementGetListCount1() { var intTree = new Tree<int>(); intTree.Add(0); Assert.AreEqual(1, intTree.Traverse().Count); }
//Node root=null; public bool AreSimilarTrees(Tree T1, Tree T2) { Node Root1 = T1.GetRoot(); Node Root2 = T2.GetRoot(); if (T1 == null || T2 == null) return false; return CompareTrees(Root1, Root2); }
// Use this for initialization void Start() { Bots = new List <GameObject>(); WebTree = new Tree.Tree <NeiralNet.NeuralNetwork>(null, BorderLevel); WebTree.MaxLevelReach += WebTree_MaxLevelReach; _bestWeb = null; _worstWeb = null; }
static void Main() { var ex = new Tree("parent", new Tree("child 1"), new Tree("child 2", new Tree("grandchild 1"), new Tree("grandchild 2"))); Console.WriteLine(ex); Console.ReadLine(); }
private void generateTreeView(Tree.Node<Tree.Record> node, TreeNode nodePath) { int ind = 0; foreach (Tree.Node<Tree.Record> child in node.Children) { //treeView.Nodes[node.Data.ToString].Nodes.Add(child.Data); nodePath.Nodes.Add(child.Data.ToString()); generateTreeView(child, nodePath.Nodes[ind++]); } }
public void BalancedTreeFor6ElementsGetCorrectList() { var intTree = new Tree<int>(); var resultList = new List<int>(new[] {3, 1, 0, 2, 4, 5}); for (int i = 0; i < 6; i++) intTree.Add(i); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
public void DirectTraversingFor3ElementsGet213List() { var intTree = new Tree<int>(); intTree.Add(1); intTree.Add(2); intTree.Add(3); var resultList = new List<int>(new[] { 2, 1, 3 }); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
public void DirectTraversingFor3ElementsGet213List() { var intTree = new Tree<int>(); intTree.Add(1); intTree.Add(2); intTree.Add(3); var resultList = new List<int>(new[] { 2, 1, 3 }); for (int i = 0; i < 3; i++) Assert.AreEqual(resultList[i], intTree.Traverse()[i]); }
public void ReverseTraversingFor3ElementsGet132List() { var intTree = new Tree<int>(); intTree.Add(1); intTree.Add(2); intTree.Add(3); intTree.Traversing = new ReverseTraversing<int>(); var resultList = new List<int>(new[] { 1, 3, 2 }); for (int i = 0; i < 3; i++) Assert.AreEqual(resultList[i], intTree.Traverse()[i]); }
public void GetEnumeratorFor3ElementsGetEnumerator213() { var intTree = new Tree<int>(); intTree.Add(1); intTree.Add(2); intTree.Add(3); var resultEnumerator = intTree.GetEnumerator(); var expectedEnumerator = (new List<int>(new[] { 2, 1, 3 })).GetEnumerator(); for (int i = 0; i < 3; i++) { resultEnumerator.MoveNext(); expectedEnumerator.MoveNext(); Assert.AreEqual(expectedEnumerator.Current, resultEnumerator.Current); } }
static void Main(string[] args) { var tree = new Tree<int>(); tree.Add(5); tree.Add(2); tree.Add(45); tree.Add(1); tree.Add(3); tree.Add(13); tree.Add(41); tree.Add(70); tree.Add(60); tree.Add(80); var BFS = new BreadthFirstRound<int>(tree, 3); BFS.EventAfterGettingIntoNewNode += PrintCurrentNode; BFS.Start(); }
public void ReverseTraversingFor3ElementsGet132List() { var intTree = new Tree<int>(); intTree.Add(1); intTree.Add(2); intTree.Add(3); intTree.Traversing = new ReverseTraversing<int>(); var resultList = new List<int>(new[] { 1, 3, 2 }); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
public void AddParent(Tree <T> parent) { this.Parent = parent; }
public void AddChild(Tree <T> child) { this._children.Add(child); }
private static void GenerateTreeFromFoor(Tree<int> tree, TreeNode<int>[] nodeArray) { foreach (TreeNode<int> node in nodeArray[tree.Root.Value]) { tree.Root.AddChild(node); GenerateSubnodes(node, nodeArray); } }
public void SymmetrycTraversingFor3ElementsGet123List() { var intTree = new Tree<int>(); intTree.Add(2); intTree.Add(1); intTree.Add(3); intTree.Traversing = new SymmetricTraversing<int>(); var resultList = new List<int>(new[] { 1, 2, 3 }); for (int i = 0; i < 3; i++) Assert.AreEqual(resultList[i], intTree.Traverse()[i]); }
public void SymmetrycTraversingFor3ElementsGet123List() { var intTree = new Tree<int>(); intTree.Add(2); intTree.Add(1); intTree.Add(3); intTree.Traversing = new SymmetricTraversing<int>(); var resultList = new List<int>(new[] { 1, 2, 3 }); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
public void SymmetrycTraversingForReverce10ElementsGetCorrectList() { var intTree = new Tree<int>(); var resultList = new List<int>(); for (int i = 10; i > 0; i--) { intTree.Add(i); resultList.Add(10 - i + 1); } intTree.Traversing = new SymmetricTraversing<int>(); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
private bool IsRoot(Tree <T> node) { return(node.Parent == null); }
public void CreateEmptyTree() { ITree<int> tree = new Tree<int>(6); Assert.AreEqual(6, tree.Root.Value); }
public static void MajorMethod() { string file1 = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "VehicleClaims.txt"); // Get only mutiple vehicle accidents. var vehicleClaims = Cache.GetVehicleClaims(file1) .GroupBy(v => v.ClaimNumber) .Where(g => g.Count() > 1) .SelectMany(v => v.Where(c => IsValidVehicleRegistrationNumber(c.VehicleRegistionNumber))).ToList(); var validVehicleRegistrationNumbers = vehicleClaims.Select(r => r.VehicleRegistionNumber) .Where(r => IsValidVehicleRegistrationNumber(r)) .Distinct() .ToArray(); string file = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"); using (StreamWriter sw = new StreamWriter(file)) { sw.AutoFlush = true; sw.WriteLine("Found a circle"); for (int i = 0; i < validVehicleRegistrationNumbers.Length; i++) { try { decimal percentage = (decimal)(i * 100) / validVehicleRegistrationNumbers.Length; Console.WriteLine(string.Format(@"{0}:{1}/{2}({3}%)", validVehicleRegistrationNumbers[i], i, validVehicleRegistrationNumbers.Length, percentage.ToString("F5"))); var rootClaim = vehicleClaims.Where(v => v.VehicleRegistionNumber == validVehicleRegistrationNumbers[i]) .OrderByDescending(v => v.EventDate) .FirstOrDefault(); var root = new Node() { ClaimInfo = new Claim() { ClaimNumber = rootClaim.ClaimNumber, VehicleRegistrationNumber = rootClaim.VehicleRegistionNumber, EventDate = rootClaim.EventDate }, Parent = null }; BuildTree2(root, vehicleClaims, new List<string>()); if (root.Children.Count <= 0) continue; Tree tr = new Tree() { Root = root }; int depth = Tree.GetDepth(tr.Root); if (depth >= 2) { var circles = tr.GetCircles(); if (circles.Count > 0) { foreach (var cc in circles) { // Remove claims happended in one day. sw.WriteLine("======================================="); sw.WriteLine("Found a circle:" + cc.GetTraceString()); sw.WriteLine(tr.ToString()); Console.WriteLine("======================================="); Console.WriteLine("Found a circle:" + cc.GetTraceString()); Console.WriteLine(tr.ToString()); } } } } catch (Exception ex) { sw.WriteLine(ex.Message); Console.WriteLine("Exception:" + ex.Message + ex.StackTrace); } } } }
public static void MajorMethod() { string file1 = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "VehicleClaims.txt"); // Get only mutiple vehicle accidents. var vehicleClaims = Cache.GetVehicleClaims(file1) .GroupBy(v => v.ClaimNumber) .Where(g => g.Count() > 1) .SelectMany(v => v.Where(c => IsValidVehicleRegistrationNumber(c.VehicleRegistionNumber))).ToList(); var validVehicleRegistrationNumbers = vehicleClaims.Select(r => r.VehicleRegistionNumber) .Where(r => IsValidVehicleRegistrationNumber(r)) .Distinct() .ToArray(); string file = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"); using (StreamWriter sw = new StreamWriter(file)) { sw.AutoFlush = true; sw.WriteLine("Found a circle"); for (int i = 0; i < validVehicleRegistrationNumbers.Length; i++) { try { decimal percentage = (decimal)(i * 100) / validVehicleRegistrationNumbers.Length; Console.WriteLine(string.Format(@"{0}:{1}/{2}({3}%)", validVehicleRegistrationNumbers[i], i, validVehicleRegistrationNumbers.Length, percentage.ToString("F5"))); var rootClaim = vehicleClaims.Where(v => v.VehicleRegistionNumber == validVehicleRegistrationNumbers[i]) .OrderByDescending(v => v.EventDate) .FirstOrDefault(); var root = new Node() { ClaimInfo = new Claim() { ClaimNumber = rootClaim.ClaimNumber, VehicleRegistrationNumber = rootClaim.VehicleRegistionNumber, EventDate = rootClaim.EventDate }, Parent = null }; BuildTree2(root, vehicleClaims, new List <string>()); if (root.Children.Count <= 0) { continue; } Tree tr = new Tree() { Root = root }; int depth = Tree.GetDepth(tr.Root); if (depth >= 2) { var circles = tr.GetCircles(); if (circles.Count > 0) { foreach (var cc in circles) { // Remove claims happended in one day. sw.WriteLine("======================================="); sw.WriteLine("Found a circle:" + cc.GetTraceString()); sw.WriteLine(tr.ToString()); Console.WriteLine("======================================="); Console.WriteLine("Found a circle:" + cc.GetTraceString()); Console.WriteLine(tr.ToString()); } } } } catch (Exception ex) { sw.WriteLine(ex.Message); Console.WriteLine("Exception:" + ex.Message + ex.StackTrace); } } } }
private void WebTree_MaxLevelReach() { _bestWeb = WebTree.MaxRightValue(); _worstWeb = WebTree.MaxLeftValue(); WebTree = new Tree.Tree <NeiralNet.NeuralNetwork>(NeiralNet.NeuralNetwork.Mixing(WebTree.MaxLeftValue(), WebTree.MaxRightValue()), BorderLevel); }
public void SymmetrycTraversingFor10lementsGetCorrectList() { var intTree = new Tree<int>(); var resultList = new List<int>(); for (int i = 0; i < 10; i++) { intTree.Add(i); resultList.Add(i); } intTree.Traversing = new SymmetricTraversing<int>(); CollectionAssert.AreEqual(resultList, intTree.Traverse()); }
private bool IsLeaf(Tree <T> node) { return(node.Children.Count == 0); }
public static void TestMethod1() { var targetClaim = DataProvider.GetClaim(); var match1 = DataProvider.GetClaim(); var match2 = DataProvider.GetClaim(); var match3 = DataProvider.GetClaim(); match1.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; match2.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; match3.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; var rootNode = new Node { ClaimInfo = targetClaim, Parent = null, Children = new List<Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(3) }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(2) }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List<Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List<Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List<Node>() { DataProvider.GetNode(), DataProvider.GetNode(), DataProvider.GetNode(), new Node() { ClaimInfo = match1, Children = DataProvider.GetNodes(4) }, } }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List<Node>() { new Node() { ClaimInfo = match2 }, DataProvider.GetNode(), DataProvider.GetNode() } } } }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(4) } } }, } }; var tree = new Tree() { Root = rootNode }; string treeStr = tree.ToString(); var circles = tree.GetCircles(); foreach (var c in circles) { Console.WriteLine(c.GetTraceString()); } }
public static void TestMethod1() { var targetClaim = DataProvider.GetClaim(); var match1 = DataProvider.GetClaim(); var match2 = DataProvider.GetClaim(); var match3 = DataProvider.GetClaim(); match1.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; match2.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; match3.VehicleRegistrationNumber = targetClaim.VehicleRegistrationNumber; var rootNode = new Node { ClaimInfo = targetClaim, Parent = null, Children = new List <Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(3) }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(2) }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List <Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List <Node>() { new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List <Node>() { DataProvider.GetNode(), DataProvider.GetNode(), DataProvider.GetNode(), new Node() { ClaimInfo = match1, Children = DataProvider.GetNodes(4) }, } }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = new List <Node>() { new Node() { ClaimInfo = match2 }, DataProvider.GetNode(), DataProvider.GetNode() } } } }, new Node() { ClaimInfo = DataProvider.GetClaim(), Children = DataProvider.GetNodes(4) } } }, } }; var tree = new Tree() { Root = rootNode }; string treeStr = tree.ToString(); var circles = tree.GetCircles(); foreach (var c in circles) { Console.WriteLine(c.GetTraceString()); } }