/// <summary> /// Tries to display a ring around the object at text position /// offset. /// </summary> /// <param name="offset">The text position.</param> public void MarkObjectAt(int offset) { OverlayShapeVM ols = DisplayTree.ObjectFromOffset(offset); if (ols != null) { View.MarkObject(ols); } }
private static void Main() { var f = new BinaryTree <char>('F'); var b = new BinaryTree <char>('B'); var g = new BinaryTree <char>('G'); var a = new BinaryTree <char>('A'); var d = new BinaryTree <char>('D'); var i = new BinaryTree <char>('I'); var c = new BinaryTree <char>('C'); var e = new BinaryTree <char>('E'); var h = new BinaryTree <char>('H'); f.AddLeft(b); f.AddRight(g); b.AddLeft(a); b.AddRight(d); g.AddRight(i); i.AddLeft(h); d.AddLeft(c); d.AddRight(e); Console.WriteLine("PreOrder tree traversal: "); DisplayTree.PreOrderTraversal(f); Console.WriteLine(); Console.WriteLine("InOrder tree traversal: "); DisplayTree.InOrderTraversal(f); Console.WriteLine(); Console.WriteLine("OutOrder tree traversal: "); DisplayTree.OutOrderTraversal(f); Console.WriteLine(); Console.WriteLine("PostOrder tree traversal: "); DisplayTree.PostOrderTraversal(f); Console.WriteLine(); Console.WriteLine("LevelOrder tree traversal: "); DisplayTree.BreadthFirstTreeTraversal(f); }
private static void Main() { const string infix = "3+2*4/5"; Console.WriteLine($"Initial infix: {infix}"); // 324*5/+ var postfix = ShuntingYardAlgorithm.PostfixString(infix); Console.WriteLine($"Postfix by Shunting-yard: {postfix}"); var arithmeticTree = ExpressionTree.BuildArithmeticTree(postfix); Console.WriteLine("Infix by In-Order traversal: "); DisplayTree.InOrderTraversal(arithmeticTree); Console.WriteLine(); Console.WriteLine("Postfix notation by Post-Order traversal: "); DisplayTree.PostOrderTraversal(arithmeticTree); Console.WriteLine(); Console.WriteLine("Prefix notation by Pre-Order traversal: "); DisplayTree.PreOrderTraversal(arithmeticTree); Console.WriteLine(); Console.WriteLine("Infix: "); ExpressionTree.PrintInfixExpression(arithmeticTree); }
private void DisplayTree_Loaded(object sender, RoutedEventArgs e) { DisplayTree.MoveFocus(new TraversalRequest(FocusNavigationDirection.First)); }
public DisplayTree search(NodeTree tree, String targetString) { // memory to maintain unvisited children List <Node> queue = new List <Node>(); // iterate over all nodes (breadth first search) queue.Add(tree.GetTreeA()); int currentLevelCount = 1; int nextLevelCount = 0; int currentLevel = 1; Console.WriteLine("First Level: " + currentLevel); Node currentNode = null; // counter to begin iterating over newly added children to instantiate display nodes int displayIterBegin = 1; // counter to end iterating over newly added children to instantiate display nodes int displayIterEnd = 1; // test if display tree has been instantiated if (displayTree == null) { displayTree = new DisplayTree(width, height, nodeSize); } DisplayNode currentParentDisplayNode = new DisplayNode(); // add the root display node displayTree.AddDisplayNode(queue.ElementAt(0), null, currentLevel, 1, nextLevelCount, currentParentDisplayNode); List <DisplayNode> childDisplayNodes = new List <DisplayNode>(); List <DisplayNode> parentDisplayNodes = new List <DisplayNode>(); parentDisplayNodes.Add(currentParentDisplayNode); List <Node> childNodes = new List <Node>(); while (queue.Count > 0) { currentNode = queue.ElementAt(0); queue.RemoveAt(0); // get current parent display node currentParentDisplayNode = parentDisplayNodes.ElementAt(0); parentDisplayNodes.RemoveAt(0); Console.WriteLine("Current Node Str: " + currentNode.getNodeStr()); Node currentNodeChild = null; while ((currentNodeChild = currentNode.getNextChild()) != null) { queue.Add(currentNodeChild); nextLevelCount++; displayIterEnd++; DisplayNode displayNode = new DisplayNode(); displayNode.SetParent(currentParentDisplayNode); childDisplayNodes.Add(displayNode); childNodes.Add(currentNodeChild); } currentLevelCount--; if (queue.Count > 0) { if (currentLevelCount == 0) { parentDisplayNodes.Clear(); currentLevel++; for (int levelCounter = 0; levelCounter < childDisplayNodes.Count; levelCounter++) { // add the display node displayTree.AddDisplayNode(childNodes.ElementAt(levelCounter), childDisplayNodes.ElementAt(levelCounter).GetParent(), currentLevel, nextLevelCount, levelCounter, childDisplayNodes.ElementAt(levelCounter)); parentDisplayNodes.Add(childDisplayNodes.ElementAt(levelCounter)); } Console.WriteLine("Level has incremented! " + currentLevel); currentLevelCount = nextLevelCount; nextLevelCount = 0; childDisplayNodes.Clear(); childNodes.Clear(); } } } Console.WriteLine("Final Current Level: " + currentLevel); displayTree.CalculateDisplayTreeYValues(currentLevel); return(displayTree); }