int main(int argc, const char *argv[]) {
    auto test = [](std::initializer_list<int> li, std::initializer_list<int> expected_li) {
        TreeNode *root = CreateTree(li);
        std::vector<int> result;
        std::vector<int> expected(expected_li);
        BSTIterator it = BSTIterator(root);
        while (it.hasNext()) {
            result.push_back(it.next());
        }
        std::cout << "[";
        std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, ", "));
        std::cout << "]" << std::endl;
        
        return result == expected;
    };
    
    assert(test({2, 1, 3}, {1, 2, 3}));
    assert(test({1}, {1}));
    
    return 0;
}
Ejemplo n.º 2
0
 /** Post-increment operator. */
 BSTIterator<Data> operator++(int) {
   BSTIterator before = BSTIterator(curr);
   ++(*this);
   return before;
 }