#include <iostream>
#include <vector>
using namespace std;
// 定义树的节点结构
struct TreeNode {
int value; // 节点值
vector<TreeNode*> children; // 子节点列表
// 构造函数
TreeNode(int val) : value(val) {}
};
// 打印树的函数,使用前序遍历(根-左-右)
void printTree(TreeNode* node, int level = 0) {
if (node == nullptr) return;
// 打印当前节点值,并缩进表示层级
for (int i = 0; i < level; ++i) {
cout << " ";
}
cout << node->value << endl;
// 递归打印子节点
for (TreeNode* child : node->children) {
printTree(child, level + 1);
}
}
int main() {
// 创建树的根节点
TreeNode* root = new TreeNode(1);
// 创建子节点并添加到根节点
TreeNode* child1 = new TreeNode(2);
TreeNode* child2 = new TreeNode(3);
root->children.push_back(child1);
root->children.push_back(child2);
// 继续为子节点添加子节点
TreeNode* grandchild1 = new TreeNode(4);
TreeNode* grandchild2 = new TreeNode(5);
child1->children.push_back(grandchild1);
child1->children.push_back(grandchild2);
// 打印树结构
printTree(root);
// 清理内存
delete grandchild1;
delete grandchild2;
delete child1;
delete child2;
delete root;
return 0;
}
value
和一个指向其子节点的指针向量 children
。1
,有两个子节点 2
和 3
,其中 2
又有两个子节点 4
和 5
。最后调用 printTree
函数打印整个树结构。这段代码展示了如何在 C++ 中实现和操作一棵多叉树的基本方法。
上一篇:缺少c++运行库
下一篇:c++ cli
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站