二叉树的建立随手记

最近数据结构学到二叉树,相比之前的课程有点难以理解,尤其是链式二叉树的建立。所以记录一下学习过程。
依照教材的操作
链式二叉树的结构体定义(二叉链表)在这里插入图片描述
教材中的操作并没有单独再次定义栈的结构体,而是将栈塞入了树的结构体定义(因为二叉树的建立,遍历操作涉及栈的操作,所以需要定义栈)

下图是分开定义的操作
在这里插入图片描述
结构体定义后我们来看看二叉树的创建操作
在这里插入图片描述
教材用到的方法是遍历树的括号表示法,通过对于特定符号进行特定的入出栈的操作
对于‘( ’,我们要做的是将前面的节点作为父母节点入栈,同时设置标志k=1,以便之后进行对于左孩子的操作。
对于‘ )’,我们可知对左右孩子的遍历已完成即可。
对于‘ ,’,表示左孩子已遍历完成,接下来只需操作右孩子节点,我们设置标志为k=2。
对于遍历至数据,我们需要一个节点,并且根据特定看k值来操作栈中节点,k=1时,我们需要将此节点作为栈中节点的左孩子节点来操作,同理,右孩子节点则是k=2时。

具体我把我的理解用图表示了出来
在这里插入图片描述
最后我们进行编译运行,发现不能运行,无奈由于自己水平太次,并不能解释,但是我的大佬朋友给出了好的解释,在这放上链接。https://blog.csdn.net/shinra1/article/details/109121952?utm_source=app

菜鸟一枚,如果有错误希望大家指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值