恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

算法(二叉树的遍历)

  • 首页
  • 资讯中心
  • /
  • 算法(二叉树的遍历)

相关资讯

Muon优化器在Stiefel流形上的闭式更新:极分解与SVD的精确解法 2026/8/30 23:42:31
2026企业AI办公平台选型指南:从需求匹配到工具落地 2026/8/30 23:42:31
2026 企业AI自动化指南:哪些重复性工作最适合交给AI 2026/8/30 23:42:31

最新资讯

无人艇自触发MPC控制:事件驱动的实时轨迹跟踪实现
Flume 与 Elasticsearch 集成实战:构建高效日志采集与实时检索系统
Flume 生产环境踩坑实录:高并发下的问题排查与优化
用Python把足球比赛标题变成结构化数据:统计与可视化实战
用Python量化电竞社区情绪:从NIP 2:1 WBG看舆情分析
降ai神器真能一键处理论文吗?AIGC降重后必须复查数据与重复率?

今日推荐

MCU无DAC如何用定时器+DMA 2D输出高保真任意波形
Cortex-M3 Flash下载失败?从编程错误标志到供电瞬态排查
STM32 TouchGFX屏幕切换Transition优化:原理、配置与排障实战

本周热门

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析
数字电路时序基石:深入理解建立时间与保持时间
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

算法(二叉树的遍历)

发布时间:2026/8/30 23:42:31
算法(二叉树的遍历) ༺ 个人主页 · 纪念229 ༻我的博客主页༒专栏目录《数据结构》༒༒专栏目录《算法》༒༒专栏目录《MySQL数据库》༒༒专栏目录《前端开发》༒༒其它有趣的计算机知识༒༺世上本没有路走的人多了自然就有了༻这篇文章讲述的是我在刷算法题时遇到的一个题目希望对你有所帮助题目链接https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef注意本题代码用的是c语言文章目录1.二叉树遍历1.二叉树遍历题目展示这里讲一个东西ACM模式就是所有代码都是自己写而核心代码模式就是些核心代码像是数组结构体它系统一般会帮你写好代码展示#includestdio.h#includestdlib.htypedefstructtree{charval;structtree*left;structtree*right;}tree;tree*build(char*arr,int*num){//先判断得到的字符是否为#,是的话不用创建节点//同时获得ch可直接赋值给本节点的val里charcharr[(*num)];if(ch#){returnNULL;}tree*node(tree*)malloc(sizeof(tree));node-valch;node-leftbuild(arr,num);node-rightbuild(arr,num);returnnode;//第一次return node返回的是头指针其它递归函数return node是将取到的节点赋值给node的下一个节点//要给节点添加内容首先要给节点创造空间}voidorderprintf(tree*node){if(nodeNULL)return;orderprintf(node-left);printf(%c ,node-val);//建立起此二叉树以后再对二叉树进行中序遍历输出遍历结果//这个意思就是将二叉树根据中序排序打印出来orderprintf(node-right);}intmain(){chararr[100];scanf(%s,arr);intnum0;//构建二叉树并且进行tree*rootbuild(arr,num);//中序遍历orderprintf(root);return0;}具体讲解编一个程序读入用户输入的一串先序遍历字符串根据此字符串建立一个二叉树以指针方式存储。 例如如下的先序遍历字符串 ABC##DE#G##F### 其中“#”表示的是空格空格字符代表空树。建立起此二叉树以后再对二叉树进行中序遍历输出遍历结果。读入用户输入的一串先序遍历字符串这个说明我们要弄一个字符数组然后输入一段数字字符chararr[100];scanf(%s,arr);intnum0;这个num是作为下标遍历数组组织给二叉树最后将数字字符串用先序排序排好根据此字符串建立一个二叉树以指针方式存储用指针方式存储就意味着要创建malloc空间但是算法题不用将它freetree* root build( arr, num);用是为了将num在局部变量的值在全局变量中用得上还有就是不要随便创建指针类型因为创建指针类型都要创建空间我们一般用普通类型就可以这里用指针类型的原因是二叉树由结构体构成找到地址就找到所有二叉树节点二叉树节点怎么来的这里就不赘述了tree*build(char*arr,int*num){//先判断得到的字符是否为#,是的话不用创建节点//同时获得ch可直接赋值给本节点的val里charcharr[(*num)];if(ch#){returnNULL;}tree*node(tree*)malloc(sizeof(tree));node-valch;node-leftbuild(arr,num);node-rightbuild(arr,num);returnnode;//第一次return node返回的是头指针其它递归函数return node是将取到的节点赋值给node的下一个节点//要给节点添加内容首先要给节点创造空间}用先序遍历就要遍历这里的区别就是要加个#字符的判断如果字符是#就返回我们这里#字符作用就是作为空某些场景有用没的话我们就这样node-valarr[(*num)];node-leftbuild(arr,num);node-rightbuild(arr,num);然后我们创建一个指针节点node用malloc给它创建空间这里就说到指针的好处了无论是普通变量还是指针变量都是在栈上函数结束栈空间就返回但是指针变量指向的地址在堆上由maolloc创建堆不会随函数结束就结束所以指针所具有的数据不会消失这里可能有人会问如果遇到#不就结束了吗不会因为是递归它只是结束某个函数其它函数正常进行最后返回二叉树地址建立起此二叉树以后再对二叉树进行中序遍历输出遍历结果。voidorderprintf(tree*node){if(nodeNULL)return;orderprintf(node-left);printf(%c ,node-val);//建立起此二叉树以后再对二叉树进行中序遍历输出遍历结果//这个意思就是将二叉树根据中序排序打印出来orderprintf(node-right);}这句话的意思就是按照中序遍历把先序遍历的二叉树打印出来当然在PowerShell里是一行一行的首先遍历二叉树的节点当然要判断节点是否为NULL是NULL的话直接返回当然既然用到前中后序遍历当然要用递归文章到这就告一段落希望对你有所帮助感谢观看

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号