阅读量:0
在C++中实现树节点的遍历可以使用递归或者迭代的方法来实现。以下是使用递归的方法实现树节点的遍历:
#include <iostream> // 定义树节点结构 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; // 前序遍历 void preorderTraversal(TreeNode* root) { if (root == nullptr) { return; } std::cout << root->val << " "; preorderTraversal(root->left); preorderTraversal(root->right); } // 中序遍历 void inorderTraversal(TreeNode* root) { if (root == nullptr) { return; } inorderTraversal(root->left); std::cout << root->val << " "; inorderTraversal(root->right); } // 后序遍历 void postorderTraversal(TreeNode* root) { if (root == nullptr) { return; } postorderTraversal(root->left); postorderTraversal(root->right); std::cout << root->val << " "; } int main() { // 创建一个简单的树节点 TreeNode* root = new TreeNode(1); root->left = new TreeNode(2); root->right = new TreeNode(3); root->left->left = new TreeNode(4); root->left->right = new TreeNode(5); std::cout << "前序遍历结果:"; preorderTraversal(root); std::cout << std::endl; std::cout << "中序遍历结果:"; inorderTraversal(root); std::cout << std::endl; std::cout << "后序遍历结果:"; postorderTraversal(root); std::cout << std::endl; return 0; }
上面的代码演示了如何实现树节点的前序、中序和后序遍历,可以根据需要调用相应的函数实现不同的遍历方式。