#include #include #include TEST(binaryTreeTest, preorder) { using cppcode::common::binary_tree::Node; /** * 1 * / \ * 2 3 * / \ \ * 4 5 6 * / \ / \ * 7 8 9 10 */ Node node10{10, nullptr, nullptr}; Node node9{9, nullptr, nullptr}; Node node8{8, nullptr, nullptr}; Node node7{7, nullptr, nullptr}; Node node6{6, &node9, &node10}; Node node5{5, nullptr, &node8}; Node node4{4, &node7, nullptr}; Node node3{3, nullptr, &node6}; Node node2{2, &node4, &node5}; Node node1{1, &node2, &node3}; auto visit = [](const Node* node) { std::cout << "node: " << std::hex << node << std::dec << ", value: " << node->value << std::endl; }; cppcode::common::binary_tree::preorder(&node1, visit); } int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }