当前位置: 首页 > news >正文

C语言 | 二叉树打印效果,控制台打印

1. 打印效果

# 1.demo1
      a
    /    \
   b      c
  /  \    /  \
 d   e   f   /
输入: a b d / / e / / c f / / /
打印效果:
a
├──L:b
│  ├──L:d
│  └──R:e
└──R:c
│  ├──L:f


# 2.demo2
      a
    /    \
   b      c
  /  \    /  \
 d   e   f   /
g h  /\  /i
输入: a b d g / / h / / e / / c f / i / / /
打印效果:相当于拿着左下角掂起来,沾到右上角墙上,其余自然下垂后,恢复原二叉树效果。
a
├──L:b
│  ├──L:d
│  │  ├──L:g
│  │  └──R:h
│  └──R:e
└──R:c
│  ├──L:f
│  │  └──R:i

2. 打印函数

//打印二叉树
void printTree(BtNode* root, int depth, char* prefix) {
    if (root == NULL) return;
    
    // 打印当前节点前的基础缩进
    for (int i = 1; i < depth; i++) {
        //printf("%s", (i == depth-1) ? "│  " : "   ");
        printf("%s", "│  ");
    }
    // 打印当前节点的值
    printf("%s%c\n", prefix, root->data);

    // 递归打印子节点
    if (root->lchild || root->rchild) {
        printTree(root->lchild, depth + 1, "├──L:");
        printTree(root->rchild, depth + 1, "└──R:");
    }
}
  • 完整代码

相关文章:

  • MultipartEntityBuilder上传文件出现中文名乱码
  • 大模型架构全景解析:从Transformer到未来计算范式
  • 摄像头模块ISP处理流程
  • 百度贴吧IP和ID是什么意思?怎么查看
  • JConsole:JDK性能监控利器之JConsole的使用说明与案例实践
  • 星越L_备胎更换/千斤顶使用讲解
  • Webpack vs Rollup vs Parcel:构建工具深度对比
  • 面试系列|蚂蚁金服技术面【2】
  • Python教程(三):类对象、闭包、装饰器、类型注解、MRO
  • 表单 schema 配置化
  • @RequestParam、@RequestBody、@PathVariable
  • python 实现 A* 算法
  • AI日报 - 2025年3月16日
  • [测试]Selenium自动化测试常用函数
  • Java基础编程练习第31题-String类和StringBuffer类
  • 什么是 slot-scope?怎么理解。
  • 平安养老险深圳分公司积极开展2025年“3·15”金融消费者权益保护教育宣传活动
  • 19.如何使用 pandas 处理大型 Excel 文件:并行读取工作表
  • Spark 中创建 DataFrame 的2种方式对比
  • 【统计学相关笔记】抽样基本定理的证明
  • 总书记考察的上海“模速空间”,是一个怎样的空间?
  • 海尔·2025青岛马拉松两选手被终身禁赛:违规转让号码、穿戴他人号码
  • 五一假期如何躺赚利息?来看国债逆回购操作攻略
  • 一场与纪录并行的伦敦马拉松,超40项新世界纪录诞生
  • 日月谭天丨赖清德强推“脱中入北”是把台湾带向死路
  • 他比李白接地气,比杜甫乐观,比白居易刚毅