二叉树 - 伪代码?

时间:2011-03-23 20:41:39

标签: data-structures pseudocode

我正在尝试编写这个伪代码,用于检查基于树的数据结构 是一棵二叉树。

我对理解这种伪代码形式有点问题。

这就是我写的:

Is-Binary(x)    
  if (x=null) {Then Return True
            }
       else {
            if (x.Right<>Null) {Then
                if (x.key<x.right.key){Then
                   Is-Binary(x.Right)}
                else {Return False}}

            if (x.Left<>Null) {Then
               if (x.key>x.Left.key){Then
                  Is-binart(x.Left)}
               else {Return False}}
             }

我的问题:我可以假设在第一个真实被接受之后,该计划将不会完成吗?

这里的回报是什么意思?它会总结所有的真/假并给出最终的灵魂(基于真假*假=假的事实吗?)

如果是这样,我还能做什么?

谢谢

1 个答案:

答案 0 :(得分:0)

你只会得到一个结果,无论是真还是假,因为你没有积累任何东西。假设你从一棵树的顶端开始,假设你只走了一层深,那么你只会得到真或假。然后,如果你得到更深层次(另一个调用),你只是面对相同的可能性:树中的真,假或更深。

[编辑,经过进一步观察:]除非我弄错了,否则你第一次点击null时会得到True,这可能永远不会发生,因为你从来没有在空值上调用Is-Binary。

因此,如果X为null,则为true,否则为false。