Advertisement
vit134

Обход дерева (в ширину) ( Яндекс)

Nov 9th, 2018
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Обход дерева (в ширину)
  3.     Необходимо реализовать функцию  dump которая принимает на вход дерево, а на выходе отдает все массив всех значений,     которые лежат в поле  value каждого элемента дерева.
  4.    
  5. */
  6.     const dumpTree = {
  7.     "value": 1,
  8.     "childs": [
  9.         {
  10.             "value": 2,
  11.             "childs": [
  12.                 {
  13.                     "value": 4
  14.                 },
  15.                 {
  16.                     "value": 5
  17.                 }
  18.             ]
  19.         },
  20.         {
  21.             "value": 3,
  22.             "childs": [
  23.                 {
  24.                     "value": 6
  25.                 }
  26.             ]
  27.         }
  28.     ]
  29. };
  30.  
  31. function dump(tree) {
  32.     let result = [];
  33.     let cur;
  34.     let q = [tree];
  35.    
  36.     while (q.length > 0) {
  37.         cur = q.shift();
  38.        
  39.         result.push(cur.value);
  40.        
  41.         if (cur.childs && cur.childs.length > 0) {
  42.             cur.childs.forEach(el => {
  43.                 q.push(el);
  44.             })
  45.            
  46.         }
  47.     }
  48.    
  49.     return result;
  50. }
  51.  
  52. console.log(dump(dumpTree))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement