Redian新闻
>
问个题,怎么比较两个tree是topological same?
avatar
问个题,怎么比较两个tree是topological same?# JobHunting - 待字闺中
b*e
1
就是两个,tree,不一定是binary,
struct node{
vector next;
};
如何判断可以permute children使得两个tree等价?
avatar
a*0
2
递归?

【在 b*******e 的大作中提到】
: 就是两个,tree,不一定是binary,
: struct node{
: vector next;
: };
: 如何判断可以permute children使得两个tree等价?

avatar
b*e
3
怎么弄?
avatar
a*y
4
bool IsIdenticalTree(const Node* root1, const Node* root2) {
if (root1 && !root2) {
return false;
} else if (!root1 && root2) {
return false;
} else if (!root1 && !root2) {
return true;
} else if (root1->data != root2->data) {
return false;
} else if (root1->next.size() != root2->next.size()) {
return false;
}
for (int i = 0; i < root1->next.size(); ++i) {
if (!IsIdenticalTree(root1->next[i], root2->next[i])) {
return false;
}
}
return true;
}
可以么?
avatar
b*e
5
1
2 3
|\
4 5
and
1
2 3
|\
4 5
are topologically same, your algorithm returns false.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。