Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ 树

作者:昔日暖阳   发布日期:2025-05-11   浏览:34

#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;
}

解释说明:

  1. TreeNode 结构体:定义了树的节点,每个节点包含一个整数值 value 和一个指向其子节点的指针向量 children
  2. printTree 函数:使用前序遍历的方式打印树结构,通过递归调用自身来遍历每个节点及其子节点。为了更好地展示树的层级关系,每一层会增加一定的缩进。
  3. main 函数:创建了一个简单的树结构,根节点为 1,有两个子节点 23,其中 2 又有两个子节点 45。最后调用 printTree 函数打印整个树结构。

这段代码展示了如何在 C++ 中实现和操作一棵多叉树的基本方法。

上一篇:缺少c++运行库

下一篇:c++ cli

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

c++ 树

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站