//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Posts an order. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="Root"> The root. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public void PostOrder(NetworkBinaryTreeNode Root) { if (Root == null) { return; } PreOrder(Root.left); PreOrder(Root.right); printStr += Root.NodeToString(); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Print tree. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="root"> The root. </param> /// /// <returns> A string. </returns> //////////////////////////////////////////////////////////////////////////////////////////////////// public static string PrintTree(NetworkBinaryTreeNode root) { StringBuilder sb = new StringBuilder(); sb.Append(root.getMath.Answer.ToString()); sb.Append("("); sb.Append(root.getMath.FirstNumber.ToString()); sb.Append(root.getMath.Operator.ToString()); sb.Append(root.getMath.SecondNumber.ToString()); sb.Append(")"); return(sb.ToString()); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> In order. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="Root"> The root. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public void InOrder(NetworkBinaryTreeNode Root) { if (Root == null) { return; } else { InOrder(Root.left); if (!printStr.Contains(Root.NodeToString())) { printStr += Root.NodeToString(); } InOrder(Root.right); } }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Adds answerVal2. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="answerVal2"> The answer Value 2 to add. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public void Add(Values2 answerVal2) { if (top == null) { top = new NetworkBinaryTreeNode(answerVal2); return; } NetworkBinaryTreeNode currentNode = top; bool inserted = false; do { if (answerVal2.Answer < currentNode.getMath.Answer) { if (currentNode.left == null) { currentNode.left = new NetworkBinaryTreeNode(answerVal2); inserted = true; } else { currentNode = currentNode.left; } if (answerVal2.Answer >= currentNode.getMath.Answer) { if (currentNode.right == null) { currentNode.right = new NetworkBinaryTreeNode(answerVal2); inserted = true; } else { currentNode = currentNode.right; } } } } while (!inserted); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Constructor. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="answerVal"> The answer value. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public NetworkBinaryTree(Values2 answerVal) { top = new NetworkBinaryTreeNode(answerVal); }
//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Constructor. </summary> /// /// <remarks> Jakob, 15/09/2018. </remarks> /// /// <param name="val"> The value. </param> //////////////////////////////////////////////////////////////////////////////////////////////////// public NetworkBinaryTreeNode(Values2 val) { getMath = val; left = null; right = null; }