private void swap(List<SignPriority> list, int i, int j) { SignPriority sp = new SignPriority(); sp = list[i]; list[i] = list[j]; list[j] = sp; }
// сортировка пузырьком ариф знаков входной функции private SignPriority sort(BinaryTree tree, List<SignPriority> list) { if (list.Count == 0) return null; else { for (int i = 0; i < list.Count - i - 1; i++) for (int j = 0; j < list.Count - 1; j++) if (compareTo(list, j)) swap(list, j, j + 1); countMinus(tree); // считаем кол-во минусов if (CountMinus > 1) { // нахождение самого последнего приоритетного минуса SignPriority tmp = new SignPriority(); int pos = 0, maxPos = 0; for (int i = 0; i < list.Count; i++) { if (list[i].getSign().Equals("-")) { pos = list[i].getPos(); if (pos > maxPos) { maxPos = pos; tmp = list[i]; } } } CountMinus = 0; return tmp; } return list[0]; } }