首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试在C++中打印树(不使用x)

在C++中打印树可以使用递归的方式来实现。以下是一个示例代码:

代码语言:txt
复制
#include <iostream>

// 定义树节点结构
struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

// 打印树的辅助函数
void printTree(TreeNode* root, int level) {
    if (root == nullptr) {
        return;
    }
    
    // 打印右子树
    printTree(root->right, level + 1);
    
    // 打印当前节点
    for (int i = 0; i < level; i++) {
        std::cout << "    ";
    }
    std::cout << root->val << std::endl;
    
    // 打印左子树
    printTree(root->left, level + 1);
}

// 打印树的入口函数
void printTree(TreeNode* root) {
    printTree(root, 0);
}

int main() {
    // 构造一个示例树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);
    root->right->left = new TreeNode(6);
    root->right->right = new TreeNode(7);
    
    // 打印树
    printTree(root);
    
    // 释放内存
    delete root->left->left;
    delete root->left->right;
    delete root->right->left;
    delete root->right->right;
    delete root->left;
    delete root->right;
    delete root;
    
    return 0;
}

这段代码使用了递归的方式来打印树,先打印右子树,再打印当前节点,最后打印左子树。通过控制缩进的空格数来展示树的结构。在示例代码中,构造了一个简单的树并打印出来。

请注意,这里没有提及任何特定的云计算品牌商或产品,因为打印树是一个与云计算无关的问题。如果您有其他关于云计算或其他领域的问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

18分34秒

Vue3.x全家桶 48_在组合API中provide和inject使用 学习猿地

1分29秒

U盘根目录乱码怎么办?U盘根目录乱码的解决方法

9分12秒

运维实践-在ESXI中使用虚拟机进行Ubuntu22.04-LTS发行版操作系统与密码忘记重置

7分13秒

049.go接口的nil判断

6分9秒

054.go创建error的四种方式

22分1秒

1.7.模平方根之托内利-香克斯算法Tonelli-Shanks二次剩余

4分26秒

068.go切片删除元素

7分31秒

人工智能强化学习玩转贪吃蛇

2分22秒

智慧加油站视频监控行为识别分析系统

14分35秒

Windows系统未激活或key不合适,导致内存只能用到2G

1分23秒

如何平衡DC电源模块的体积和功率?

领券