Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Написать калькулятор, в котором есть знаки сложения и умножения
- Написать функцию, которая принимает на вход бинарное дерево математических операций (для простоты могут быть только + и *). Функция возвращает результат выражения. Нельзя использовать внутренние функции языка для подсчета, например, eval.
- */
- // подготовка данных
- class Node {
- constructor(v, l, r) {
- Object.assign(this, { v, l, r });
- }
- }
- const n1 = new Node(4);
- const n2 = new Node(5);
- const n3 = new Node('+', n1, n2);
- const n4 = new Node(3);
- const n5 = new Node('*', n3, n4);
- function calc(node) {
- const { v, l, r } = node;
- console.log(v);
- switch (v) {
- case '+': return calc(node.l) + calc(node.r);
- case '-': return calc(node.l) - calc(node.r);
- case '*': return calc(node.l) * calc(node.r);
- case '/': return calc(node.l) / calc(node.r);
- default: return v;
- }
- }
- //console.log(n1, n2, n3, n5)
- console.log(calc(n5))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement