Пример #1
0
        // добавление потомков
        private void addChilds(BinaryTree tree, String sign, int pos)
        {
            String tmp = tree.getData();
            tree.setData(sign);
            BinaryTree left = new BinaryTree(); // добавление левого потомка
            left.setData(tmp.Substring(0, pos));
            tree.addLeftChild(left);

            BinaryTree right = new BinaryTree(); // добавление правого потомка
            right.setData(tmp.Substring(pos + 1));
            tree.addRightChild(right);
        }
Пример #2
0
 // удаление скобочек
 private void deleteBrackets(BinaryTree tree, String sign)
 {
     StringBuilder tmp = new StringBuilder(tree.getData());
     if (sign.Equals("("))
         tmp = tmp.Remove(tree.getData().IndexOf("("), 1);
     else if (sign.Equals(")"))
         tmp = tmp.Remove(tree.getData().LastIndexOf(")"), 1);
     tree.setData(tmp.ToString());
 }
Пример #3
0
        // добавляет нули вместо пустой строки в дереве разбора
        private void setZero(BinaryTree tree)
        {
            if (tree.getLeft()  != null)  setZero(tree.getLeft());
            if (tree.getRight() != null) setZero(tree.getRight());

            if (tree.getData().Equals(""))
                tree.setData("0");
        }
Пример #4
0
 // добавление к дереву триг функции
 private void parseTrigFunction(BinaryTree tree, int pos)
 {
     String tmp = tree.getData();
     BinaryTree left = new BinaryTree();
     tree.setData(tmp.Substring(pos, 3)); // триг функцию добавляем в вершину
     left.setData(tmp.Substring(pos + 3)); // а аргумент в левого потомка
     tree.addLeftChild(left);
     parse(tree.getLeft()); // парсим левого потомка
 }