酷代码 AI
菜单
服务商

C++实现二叉树的构建与先序、中序、后序遍历

```cpp #include <iostream> #include <vector> using namespace std; // 定义二叉树节点结构 struct TreeNode { int left; int right; TreeNode() : left(0), right(0) {} }; // 先序遍历函数 void preOrder(vector<TreeNode>& tree, int node) { if (node == 0) return; cout << node << " "; preOrder(tree, tree[node - 1].left); preOrder(tree, tree[node - 1].right); } // 中序遍历函数 void inOrder(vector<TreeNode>& tree, int node) { if (node == 0) return; inOrder(tree, tree[node - 1].left); cout << node << " "; inOrder(tree, tree[node - 1].right); } // 后序遍历函数 void postOrder(vector<TreeNode>& tree, int node) { if (node == 0) return; postOrder(tree, tree[node - 1].left); postOrder(tree, tree[node - 1].right); cout << node << " "; } int main() { int n; cin >> n; vector<TreeNode> tree(n); // 构建二叉树 for (int i = 0; i < n; ++i) { int left, right; cin >> left >> right; tree[i].left = left; tree[i].right = right; } // 进行先序遍历 preOrder(tree, 1); cout << endl; // 进行中序遍历 inOrder(tree, 1); cout << endl; // 进行后序遍历 postOrder(tree, 1); cout << endl; return 0; } ``` 上述代码的思路是先定义二叉树节点结构,然后根据输入构建二叉树。通过递归的方式实现先序、中序和后序遍历函数,最后在主函数中调用这些遍历函数输出结果。 ######[AI问答 | 511点数解答 | 2026-02-15 21:00:27]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]