无向树代码c++实现
时间: 2024-02-18 16:57:52 浏览: 40
以下是一个用C++实现无向树的代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义树的节点
struct TreeNode {
int val;
vector<TreeNode*> children;
TreeNode(int x) : val(x) {}
};
// 添加边
void addEdge(TreeNode* u, TreeNode* v) {
u->children.push_back(v);
v->children.push_back(u);
}
// 遍历树
void traverse(TreeNode* root) {
if (root == nullptr) {
return;
}
cout << root->val << " ";
for (TreeNode* child : root->children) {
traverse(child);
}
}
int main() {
// 创建树的节点
TreeNode* node1 = new TreeNode(1);
TreeNode* node2 = new TreeNode(2);
TreeNode* node3 = new TreeNode(3);
TreeNode* node4 = new TreeNode(4);
TreeNode* node5 = new TreeNode(5);
// 添加边
addEdge(node1, node2);
addEdge(node1, node3);
addEdge(node2, node4);
addEdge(node3, node5);
// 遍历树
traverse(node1);
return 0;
}
```