(二叉)树中,一个节点,你也要把他看做成树。子树。一个节点都没有叫做空树。所以说:树具有递归性。
树是非线性结构,有一个直接前驱,但是可能有很多直接后继。
树中,应用最多的还是二叉树。
二叉树的遍历
先(根)序遍历DLR,中(根)序遍历LDR,后(根)序遍历LRD。
无论哪种:首要顺序都是“先左后右”。
DLR先根序遍历:先序遍历,即先根再左再右。
LDR中根序遍历:中序遍历,即先左再根再右。
LRD后根序遍历:后序遍历,即先左再右再根。
说白了,就是说,你什么时候访问中间的根,如果先访问根,再左右,那么就是先序,把根放在中间,就是中序,如果先左后右最后跟,就是后序。
树是递归的,所以说上面的这个规则也是你递归的法则。
每次递归到一棵子树,规则仍然如此。
,
先序遍历:第一棵树是A,然后到第二棵树,B子树,B为先,然后左右,AB,CDE,FGH。
中序遍历:先左后中。中序先看左边,左边是B子树,B子树也要按照中序来。左边没有所以就到了中间,所以先是B,然后右边又是一棵树,也要按照中序来,所以是BDCE,然后左边完事了,到中间,BDCE然后A,到右边了,右边也要按照中序排序。F没有左,所以直接F,F完事到右边了,右边是棵子树,先左H后G,所以:BDCE,A,FHG
后序遍历:先左再右再根。根树的话,先B,但是B是子树,所以也要按照先左再右最后根的顺序。所以B子树,先左,左为空,所以到右,右边C是子树,所以先DE然后DEC。然后再DECB。左边子树完成了,看右边,右边也是一颗子树,所以继续递归。F左空,右子树,是HGF,最后是根节点A。DECB,HGF,A。
永远牢记一点:树是递归的,树遍历的递归法法则是有三种顺序,这三种方法也是递归的规则。
现在开始编程实现:
首先是定义二叉树数据结构:二叉树结构体
二叉树有两个节点,左节点和右节点。我们分别用指针来代替。
因为它是递归的,所以也是node节点。结构体嵌套自身。
struct BiNode
{
char ch;
struct

文章详细介绍了二叉树的三种遍历方式(先序、中序、后序)及其递归实现,并提供了计算叶节点数量、获取二叉树高度的函数。此外,还阐述了如何进行二叉树的深拷贝以及如何释放二叉树的内存,所有操作均基于递归思想进行。
最低0.47元/天 解锁文章
5562

被折叠的 条评论
为什么被折叠?



