已知一颗树的节点间关系,请编程实现该树的先根遍历。用c++
时间: 2024-03-15 11:46:12 浏览: 64
以下是用C++实现一颗树的先根遍历的代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 定义树的节点结构体
struct TreeNode {
int val;
vector<TreeNode*> children; // 存储该节点的子节点
TreeNode(int x) : val(x) {}
};
// 先根遍历函数
void preorderTraversal(TreeNode* root) {
if (root == nullptr) return;
cout << root->val << " "; // 输出节点的值
// 遍历该节点的每个子节点
for (int i = 0; i < root->children.size(); i++) {
preorderTraversal(root->children[i]);
}
}
int main() {
// 创建一颗树
TreeNode* root = new TreeNode(1);
TreeNode* node2 = new TreeNode(2);
TreeNode* node3 = new TreeNode(3);
TreeNode* node4 = new TreeNode(4);
TreeNode* node5 = new TreeNode(5);
TreeNode* node6 = new TreeNode(6);
root->children.push_back(node2);
root->children.push_back(node3);
root->children.push_back(node4);
node3->children.push_back(node5);
node3->children.push_back(node6);
// 先根遍历该树
preorderTraversal(root);
return 0;
}
```
输出结果为:1 2 3 5 6 4
阅读全文