Exemplo n.º 1
0
 private void swap(List<SignPriority> list, int i, int j)
 {
     SignPriority sp = new SignPriority();
     sp = list[i];
     list[i] = list[j];
     list[j] =  sp;
 }
Exemplo n.º 2
0
        // сортировка пузырьком ариф знаков входной функции
        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];
            }
        }