void GetFirst(Iterator& a_it) { a_it.Init(); Node* first = m_root; while (first) { if (first->IsInternalNode() && first->m_count > 1) { a_it.Push(first, 1); // Descend sibling branch later } else if (first->IsLeaf()) { if (first->m_count) { a_it.Push(first, 0); } break; } first = first->m_branch[0].m_child; } }