private string GetExpression(string input) { string output = ""; for (int i = 0; i < input.Length; i++) { if (IsGap(input[i])) { continue; } if (IsQuantity(input, i)) { while (!IsGap(input[i]) && !IsOperator(input[i])) { output += input[i]; i++; if (i == input.Length) { break; } } output += " "; i--; } if (IsOperator(input[i])) { if (input[i] == '(') { operatorsStack.Push(input[i]); } else if (input[i] == ')') { char s = operatorsStack.Pop(); while (s != '(') { output += s.ToString() + ' '; s = operatorsStack.Pop(); } } else { if (operatorsStack.Count > 0 && GetPriority(input[i]) <= GetPriority(operatorsStack.Peek())) { output += operatorsStack.Pop().ToString() + " "; } operatorsStack.Push(char.Parse(input[i].ToString())); } } } while (operatorsStack.Count > 0) { output += operatorsStack.Pop() + " "; } return(output); }
private static void EatColor(LinkedStack <ColorPalette> iceCream) { var color = iceCream.Pop(); Console.WriteLine($"{color.color} мороженое съели"); }