尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
算法(二叉树的遍历)
༺ 个人主页 · 纪念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的话直接返回当然既然用到前中后序遍历当然要用递归文章到这就告一段落希望对你有所帮助感谢观看
RELATED

相关推荐

Muon优化器在Stiefel流形上的闭式更新:极分解与SVD的精确解法

Muon优化器在Stiefel流形上的闭式更新:极分解与SVD的精确解法

这次我们来看一个优化算法层面的结论:Muon 优化器在 Stiefel 流形上的更新存在精确的闭式解,不再需要依赖 Newton-Schulz 迭代去近似。如果你关心大模型训练、正交权重约束,或者想弄懂优化器底层到底在算什么,这个结论值得认真拆一…

📅 2026/9/28 8:49:50
2026企业AI办公平台选型指南:从需求匹配到工具落地

2026企业AI办公平台选型指南:从需求匹配到工具落地

企业在引入AI办公工具的过程中,很多采购决策容易被产品宣传页裹挟。采购人员浏览各家产品的功能清单,对比按钮数量、对话模式、模板库丰富度,或是单纯参考市场热度、报价高低来完成筛选,最终上线之后才发现工具很难融入现有业务流…

📅 2026/10/29 5:11:29
AI热潮重塑产业链,开发者如何重构工作流与算力选型

AI热潮重塑产业链,开发者如何重构工作流与算力选型

在海外财经媒体上,一个关于出口排名的观察引起了不少讨论:在 AI 热潮推动下,韩国和中国台湾地区的出口表现首次超过了日本。很多人看到的第一反应是,这又是一轮地缘经济洗牌。但作为技术从业者,我更愿意把它看作一个产…

📅 2026/9/28 10:27:36
MORE NEWS

更多资讯

📰

Python pygame塔防游戏源码解析:主循环、碰撞与二次开发

简介:这是一份基于 Python 编写的植物大战僵尸复刻源码包,面向有一定 Python 基础、希望借助经典游戏案例练习图形界面与游戏循环逻辑的开发者与学习者。压缩包共 10 个文件、约 42KB,以 8 个 png 图片素材(草坪地图、豌豆射手、向…

📰

Transformer工程三线:BERT微调、RoBERTa预训练与生成避坑

简介:《Transformers for Natural Language Processing》是面向NLP开发者与深度学习学习者的英文原版专著,从零讲解自注意力机制及Transformer架构,帮助读者用Python和主流框架理解并应用预训练模型。全书分三阶段展开:从原始Tran…

📰

从客户端到天气服务器:MCP 快速入门与工具调用实战

简介:《从零到一MCP快速入门实战》面向希望系统理解并上手Model Context Protocol的开发者与Agent学习者,从技术体系、客户端开发到服务器搭建逐步展开,适合具备Python基础、想降低外部工具调用门槛的初中级读者。资源包共1个PDF文件&#xf…

📰

DeepSeek提示词工程:从聊天框到一小时万字方案交付流水线

简介:《普通人如何抓住DeepSeek红利.pdf》是一份面向上班族、学生及希望借助人工智能提升效率的入门型实战读物,围绕DeepSeek的能力边界与提示词使用展开,帮助读者在工作写作、学习辅导、职场沟通和日常事务中把AI真正用起来。压缩包内共1个P…

📰

DeepSeek能力图谱与提示词实战:深度思考的用法边界

简介:《普通人如何抓住DeepSeek红利》是一份面向上班族、学生及希望用AI提升效率的普通读者的PDF资料,围绕DeepSeek的能力图谱、典型应用与提示词方法展开,帮助读者在工作写作、学习辅导、职场沟通和生活应急等场景中快速上手。内容涵盖DeepS…

📰

【Linux】31:Socket编程1-UDP

目录 一、echo Server 1.1 Log.hpp 1.2 Mutex.hpp 1.3 UdpClient.cc 1.4 UdpServer.hpp 1.5 UdpServer.cc 二、dict server 2.1 Log.hpp 2.2 Mutex.hpp 2.3 Dict.hpp 2.4 InetAddr.hpp 2.5 UdpClient.cc 2.6 UdpServer.hpp 2.7 UdpServer.cc 一、echo Server 简单…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬