比较两个bsts

时间:2016-03-15 18:09:48

标签: python function binary-search-tree

我想创建一个将两个bst进行比较的函数,看它们是否相同。

这是我到目前为止所拥有的

MPI_Exscan()

我必须以这种方式测试它,first.same(另一个)来看它们是否相同。

这是我更新的功能:

def same(self,another):
    same = False
    for j in another:
        for i in self:
            if self[i] == another[j]:
                same = True

    return same

这就是我想出来的,但是我用这个函数测试的任何东西我总是得错。

1 个答案:

答案 0 :(得分:0)

我不会马上给出答案,但这是你怎么做的。

在BST中,左节点小于或等于根节点,右节点大于根节点,并且此属性递归地应用于每个节点。

因此,对于每个节点,您必须执行以下操作

  

1。)if(bst1node.data == bst2node.data)检查左右节点:

     

返回比较(bst1node.left,bst2node.left)&&   比较(bst1node.right,bst2node.right);

     

2。)if(bst1node.data!= bst2node.data){return false};

     

3。)最后,当比较超出了叶子时会发生什么?

     

if(bst1node == null&& bst2node == null)返回true;

     

如果一个节点为null,而其他节点不为null,则返回false;

根据这些条件,您应该能够检查两个BST是否相等。而已。