今天看看了几道二叉树的遍历问题。开始看了看文字资料,完全把我撂那了。中午回来,又看了看,感觉懂了。简单的问题,怎么样文字这么一描述变得这么不好理解呢。总结一下。
1,根结点——大家懂的,不懂看看书也就懂了。就是能分叉的那个点就是。比如图中的A,D,F,E吧!
2,遍历就是访问顺序。
3,分类是按访问根结点的顺序分的。
分为:前序遍历(根,左,右)
中序遍历(左,根,右)
后序遍历(左,右,根)
4,访问左右子树时顺序也不变。这点不急的懂,看下面的,一会就知道了。
上图的前序遍历(根,左,右):F -C,这是你犹豫了吧,应该是把C下面的整体看成一个二叉树,所以有了C-A,这时接着犹豫,还是刚才的思路,D下面的看成整体,又有了D-B。所以有了:F-C-A-D-B这是你看F的左子树访问完了,接着是右子树了。还是刚才的思路:E-G-H-P。
这样就有了:F-C-A-D-B-E-G-H-P。
中序遍历(左,根,右):别犹豫,F是根结点,放弃吧,还有C。从A开始。这个不懂再看前面!,左,根,右。接着说,A-C,犹豫下,想想是B还是D,(看成一个小二叉树,左,根,右)明白了吧,应该是B,后是D。所以有了:A-C-B-D-F;左边的二叉树访问结束,之后就看右边的了。左,左,左,是....?开始我总是不懂为什么不是H,答案是E。后来想明白,上面到F之后还没有结束。还少一步呢,就是E了(此时没有访问E的子树,千万别掉下去,后序遍历有点类此此处访问情况,看标记@)。这样结束之后,再按顺序,得到H-G-P。所以就有了:F-E-H-G-P。
这样就有了A-C-B-D-F-E-H-G-P
后序遍历(左,右,中):开始是A没问题,@接下来是D还是B,(此时是访问D,应为咱们后边还有个“中”,所以应该是B后是D。这样再是C自此“左右中”访问结束。接着是访问右子树了。这是不应该是E,(如果明白,前面的说明你明白了。如果不明白。情再看看吧。因为是前面的访问结束,应该看成左,还没结束,类似上边访问B而不是访问D)应该H-P-G-E-F.
明白了吗?我是明白了,要不你试试给别人教教,没准也就明白了!此例子选自《二级教材-公共基础知识》。
祝大家二级考个好成绩!看不懂讲解的再看看网上的资料吧!