(C语言-数据结构与算法)还原二叉树

本文是作者初次尝试写博客的记录,分享了在学习数据结构与算法过程中,如何通过先序和中序遍历还原二叉树的问题。作者详细描述了自己的思考过程,从不理解还原原理到通过百度找到解答,再到形成递归算法的思路。尽管在实现过程中遇到了困难,但最终成功编写出代码并得到了老师的肯定。
摘要由CSDN通过智能技术生成

第一次写博客

因为看到一篇文章,是搞编程的学长写的,他在求职的时候,面试官说他提前看过了学长的博客,我在想我也应该把自己写代码的一些心得一些问题写出来,虽然在上大学之前,从来没有这样接触电脑,除了玩游戏以外,我连装系统都不会,但是对于写代码我也有自己的想法,我并非热爱编程,可能因为从来没有过目标,所以对什么也不感兴趣。我现在刚上大一,目前是大一下学期,正在学习数据结构和算法,偶然一次问老师一道题,根据先序遍历和中序遍历,还原二叉树,老师说这个可以用代码实现,我就第一次尝试自己写一份代码,之前的代码一部分是自己的思想,一部分是复制粘贴别人的代码,成就感不强,这次的代码从头到尾全是我自己写的,写完很激动。

题目:先序:"abdgcefh";中序:"dgbaechf";,还原这棵二叉树

我是这样处理这问题的,首先我并不懂如何还原,我要知道还原的原理是什么,我百度了一下,这样的题是如何求解的,于是有了答案,我把步骤分解一下:

先序的第一个一定是树根,根据树根,中序当中可以分为三部分,根据中序分的部分,先序也可以分成三部分

先序的三部分:a  bdg  cefh,中序的三部分:dgb  a  echf

从这部分可以看出,a是根,左孩子是“bdg”这部分,右孩子是“echf”这部分,然后采用递归的思想对左右孩子进行同样的步骤。

我的算法思想很快就形成了,可实现起来,还是走了一点弯路,首先,我一开始就想直接对数组的地址进行操作,于是百度到了一个函数

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值