2条回答 默认 最新
- shn_baby 2021-06-08 17:49关注
中序遍历的步骤是:在遍历某个根时,先遍历它的左子树,再遍历根结点,最后遍历右子树。
对于你画的这个树来说,从遍历A开始(下文中的()代表结点,若有文字代表没有遍历完这个结点):
- 遍历结点A,得出结果:(A的左子树)A(A的右子树)
- 查看A的左子树,发现为空,结果为:A(A的右子树)
- 查看A的右子树,查找到B,结果为:A((B的左子树)B(B的右子树))
- 查看B的左子树,查找到C,结果为(以下简称B的左子树为B左,偷个懒hhhh):A(((C左)C(C右))B(B右))
- 查看C的左子树,发现为空,结果为:A((C(C右))B(B右))
- 查看C的右子树,查找到D,结果为:A((C((D左)D(D右)))B(B右))
- 查看D的左子树,查找到E,并且没有子树了,结果为:A((C((E)D(D右)))B(B右))
- 查看D的右子树,发现为空,结果为:A((C((E)D))B(B右))
- 查看B的右子树,发现为空,结果为:A((C((E)D))B)
- 去掉括号,顺序为ACEDB
另外,还有一个简单的方法,我刚刚查了一下,你可以看看这个链接的动态图~:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用