一种二叉树遍历方法

来源:互联网 发布:贤者时间 知乎 编辑:程序博客网 时间:2024/06/14 22:50

伪代码如下:

INORDER-TREE-WALK(x)y = xprint x.keyx = x.leftwhile y != NILy = y.rightwhile y != xwhile x != NILprint x.keyx = x.leftwhile x.right == NILx = x.px = x.rightprint y.key

基本思路:

如上图所示,节点的遍历顺序为:a-b-d-b-e-b-a-c-f-g-i-g-j-g-f-h

可以知道:n0的遍历次数为1,n1的遍历次数为2,n2的遍历次数为3(其中n0为度为0的节点,n1为度为1的节点,n2为度为2的节点)。

因此该方法的遍历次数为:A = n0 + 2 * n1 + 3 * n2(1)

我们知道:n0 = n2 + 1(2)

结合公式1和2我们可以得到:A = 4 * n2 + 2 * n1 + 1

所以当n2值越小是,这个遍历方法的效率越高

       

原创粉丝点击