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

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:");
    }
}
  • 完整代码

http://www.kler.cn/a/586836.html

相关文章:

  • 【Git学习笔记】Git初识及其结构原理分析(一)
  • JavaScript性能优化的几个方面入手
  • matlab 谐波分析公式绘图
  • Three.js 实现云状特效
  • Global Mapper 多功能的GIS软件
  • Python 本地翻译库 googletrans
  • 华为机试牛客刷题之HJ5 进制转换
  • 「为爱发电」的硬核打开方式,涂鸦智能用AIoT引领智慧能源变革
  • The Rust Programming Language 学习 (五)
  • 人工智能技术与应用演讲(61页PPT)(文末有下载方式)
  • [已解决]UserWarning: __floordiv__ is deprecated
  • memcpy,memmove,strstr的模拟实现
  • 微店商品详情页的常见结构及爬虫解析方法
  • PCIe信号传输的幕后:HCSL与LP-HCSL深度解析
  • Canoe Panel基础功能介绍
  • ERROR: There are no scenarios; must have at least one.
  • 2024华东师范大学计算机复试上机真题
  • OpenCV基础【图像和视频的加载与显示】
  • 蓝光三维扫描技术:手机闪光灯模块全尺寸3D检测的精准解决方案
  • 【数据结构初阶第十九节】八大排序系列(下篇)—[详细动态图解+代码解析]