Ejemplo n.º 1
0
		private int GetOperatorPriority(OperationElement element)
		{
			if (element.Value == "(")
				return 0;
			else if (element.Value == "+"
				  || element.Value == "-"
				  || element.Value == ")")
				return 1;
			else return 2;
		}
Ejemplo n.º 2
0
		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);
			}
		}
Ejemplo n.º 3
0
		private void HandleNumber(OperationElement element)
		{
			elementsInOnpOrder.Enqueue(element);
		}