public double Calculate() { if (Root_Node) { return(Value); } if (Left == null) { return(Perform_Action(Right.Calculate())); } if (Right == null) { return(Perform_Action(Left.Calculate())); } return(Perform_Action(Left.Calculate(), Right.Calculate())); }
/* *---------------------------One of the most important functions of the program---------------------------------------- * Called when the equal sign is written */ private double Calculate_Value() { List <Mouse_Data> L = new List <Mouse_Data>(); for (int i = 0; i < Screen.Count; i++) { Mouse_Data D = Screen[i]; if (D.Label != "equals" && !D.Calculated) { L.Add(D); } Screen[i].Calculated = true; } Math_Node Tree = new Math_Node(L); return(Tree.Calculate()); }