Сравните два двоичных дерева - PullRequest
0 голосов
/ 21 марта 2011

Учитывая два двоичных дерева поиска, напишите функцию, которая сообщает, являются ли два таких дерева одинаковыми - (т.е. одинаковая информация в узлах, одно и то же ветвление слева и справа в каждом узле).

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

Выполните поиск в ширину или глубину по обоим деревьям и проверьте каждый узел на равенство при выполнении итерации.

1 голос
/ 20 апреля 2012

Попробуйте это:

bool bst::isequal1(node *& root1,node *& root2)
{

    if(root1==NULL && root2==NULL)
    { return true;}
    if(    (root1==NULL && root2!=NULL) || (root1!=NULL && root2==NULL)   )
    {
        return false;
    }
    if(  (root1->data)  !=  (root2->data)   )
    {
        return false;
    }
     return ( isequal1(root1->left,root2->left) &&
      isequal1(root1->right,root2->right));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...