Advertisement
vit134

Сумма узлов дерева (очередь)

Oct 25th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Найти сумму значений всех узлов дерева
  3. */
  4.  
  5.  
  6. function getSum(obj) {
  7.     var arr = [obj], // очередь
  8.         sum = 0,
  9.         current;
  10.  
  11.     while(arr.length > 0) { // пока очередь не пустая
  12.         current = arr.shift(); // удаляем последний элемент очереди и присваем его текущей ноде
  13.         sum += current.valueNode;
  14.  
  15.         if (current.next) { // если в ноде есть дети записываем их в очередь
  16.             current.next.forEach(el => {
  17.                 arr.push(el);
  18.             })
  19.         }
  20.     }
  21.  
  22.     return sum;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement