private int GetOperatorPriority(OperationElement element) { if (element.Value == "(") return 0; else if (element.Value == "+" || element.Value == "-" || element.Value == ")") return 1; else return 2; }
private void HandleOperator(OperationElement element) { if (element.Value == "(") { operatorsStack.Push(element); } else if (element.Value == ")") { while (operatorsStack.Peek().Value != "(") elementsInOnpOrder.Enqueue(operatorsStack.Pop()); operatorsStack.Pop(); } else { while (operatorsStack.Count != 0 && GetOperatorPriority(element) <= GetOperatorPriority(operatorsStack.Peek())) { elementsInOnpOrder.Enqueue(operatorsStack.Pop()); } operatorsStack.Push(element); } }
private void HandleNumber(OperationElement element) { elementsInOnpOrder.Enqueue(element); }