#include "Tree.h"
using namespace std;
bool check(Node* head, Node* node);
bool contain(Node* head, Node* node)
{
return check(head, node) || contain(head->left, node) || contain(head->right, node);
}
bool check(Node* head, Node* node)
{
if(node == nullptr)
return true;
if(head == nullptr || head->value != node->value)
return false;
return check(head->left, node->left) && check(head->right, node->right);
}
int main()
{
Node* pNode0 = new Node(5);
Node* pNode1 = new Node(7);
Node* pNode2 = new Node(3);
Node* pNode3 = new Node(4);
Node* pNode4 = new Node(5);
Node* pNode5 = new Node(6);
Node* pNode6 = new Node(8);
connectTree(pNode0, pNode1, pNode2);
connectTree(pNode1, pNode3, pNode4);
connectTree(pNode2, pNode5, pNode6);
cout << contain(pNode0, pNode1) << endl;
}
判断一个树是否包含另一个树的全部拓扑结构
猜你喜欢
转载自blog.csdn.net/wzc2608/article/details/80869699
今日推荐
周排行