该函数 Print_Tree() 用于打印一个树的结构。

首先,它会根据节点的深度来打印相应数量的制表符 (\t),然后打印该节点的信息,包括它的值 (val:)、被选择的属性 (col: ) 和它的标签 (label: )。

接着,它会递归地调用自己来打印该节点的所有子节点。在递归调用前,它会将当前节点 (now) 设置为它的子节点,然后将计数器 (count) 减 1,以便打印下一层节点时正确地缩进。在递归调用后,它会将当前节点设置为它的前一个节点 (pre),然后将计数器加 1,以便正确地打印同级别的其他节点。

以下是该函数的代码示例:

void Tree::Print_Tree() {
    // 打印树
    for (int i = Train.Data[0].size(); i > count; i--)
        cout << '\t';
    cout  << 'val:' << now->info << '\tcol:' << now->choose <<'\tlabel:'<<now->label << endl;
    for (int i = 0; i < now->child.size(); i++) {
        now = now->child[i];
        count--;
        Print_Tree();
        count++;
        now = now->pre;
    }
}

该函数巧妙地利用递归和计数器,实现了对树结构的清晰打印,帮助开发者更好地理解和分析树状数据结构。

C++ 树结构打印函数详解

原文地址: https://www.cveoy.top/t/topic/n2Fx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录