| 501 | |
| 502 | template <typename T> |
| 503 | Node * |
| 504 | Tree<T>::_top(Node *node) |
| 505 | { |
| 506 | Node *child = node; |
| 507 | |
| 508 | while (child != nullptr) { |
| 509 | if (child->active) { |
| 510 | return child; |
| 511 | } else if (!child->queue->empty()) { |
| 512 | child = child->queue->top()->node; |
| 513 | } else { |
| 514 | return nullptr; |
| 515 | } |
| 516 | } |
| 517 | |
| 518 | return child; |
| 519 | } |
| 520 | |
| 521 | template <typename T> |
| 522 | Node * |