Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.53 KB | None | 0 0
  1. void max(Node& root, int& level, int& sum)
  2. {
  3.     level = 0;
  4.     sum = root.getValue();
  5.  
  6.     std::deque<Node&> current { root };
  7.     std::deque<Node&> next;
  8.  
  9.     int curLevel = 0;
  10.     int curSum = 0;
  11.     while ( ! current.empty() ) {
  12.         Node& node = current.front();
  13.         current.pop();
  14.  
  15.         sum += node.getValue();
  16.         std::copy(std::back_inserter(next), node.begin(), node.end());
  17.  
  18.         if (current.empty())
  19.         {
  20.             if (curSum > sum) {
  21.                 sum = curSum;
  22.                 level = curLevel;
  23.             }
  24.             curSum = 0;
  25.             ++curLevel;
  26.             std::swap(current, next);
  27.         }
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement