繁体   English   中英

二进制树包含其他二叉树

[英]Binary trees contained of other binary trees

我有一个函数,它应该告诉给定的二叉树A是否包含给定的二叉树B.该函数将“包含”定义为“A由B覆盖,或任何完整的B子树”。 例如,如果树A是空树而树B不是,那么A是否会包含在B中? 如果它们都是空的呢?

谢谢!

在数学意义上,空集(树只是集合的特化)包含在包括其他空集的每个其他集合中。

对你的两个问题都是如此。

空集甚至还有它的wiki: http//en.wikipedia.org/wiki/Empty_set

在此输入图像描述


无论如何,从您的实现中可以明显看出空树包含在每个其他树中,示例实现将如下所示:

bool Tree::contains(const Tree& otherTree)
{
   for (n: otherTree)
   {
      if (!contains(n)) 
         return false;
   }
   return true;
} 

当然,我可以想象更好的实现,特别是在树被排序时 - 但重点是,如果for(n: otherTree)将不会导致迭代,那么结果为true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM