首页
学习
活动
专区
工具
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;
}

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

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

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

相关·内容

领券