// добавление потомков 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); }
// удаление скобочек 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()); }
// добавляет нули вместо пустой строки в дереве разбора 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"); }
// добавление к дереву триг функции 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()); // парсим левого потомка }