2011-03-21 113 views
-2

給定兩個二叉搜索樹,寫函數告訴兩棵樹是否相同 - (即節點中的相同信息,每個節點左右相同的分支)。比較兩個二叉樹

+0

分配的櫃面請先嚐試,如果你卡住的地方,你可以在這裏發佈您的代碼問疑慮。 – Zimbabao 2011-03-21 12:36:14

+0

純粹的家庭作業問題。 – 2011-03-21 12:37:04

+0

用什麼語言?你的樹數據是怎樣的? 如果這是目標,我可以給你一些僞代碼。 – Efrain 2011-03-21 12:40:13

回答

2

在兩棵樹上進行寬度或深度優先搜索,並在迭代時檢查每個節點是否相等。

1

試試這個:

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)); 
}