2015-12-02 64 views
0

即时通讯寻找一种方法来找出两个父元素的任何公共元素。 例如,父母这里是1和2(忽略以下的值)数据结构/检索元素父

enter image description here

而对于那些父母的公共值是91. 父 - 值,该值是在顶部和没有父。 下一个例子: enter image description here

这里我们有3个父母。并为他们提供了相当多的共同元素。 : 91, 92, 93, 911, 912, 931, 932, 9311, 9312. 主要问题是得到COMON元件。 Mabey有什么建议,我怎么能存储他们呢?

+0

这不是C++特有的,而是与语言无关的算法相关的问题。另外,你是否已经尝试过任何东西?任何想法你怎么能解决这个问题?你被卡住的任何特定点? –

+0

嗯,是的,你是对的,那不是特定的C++。那么,我会写一些递归函数mabey? –

+0

您将实现哪些数据结构来表示图表?一张图?我想有一个有向图? – Matt

回答

1

从第一个节点运行一个BFS/DFS(并不重要),并为每个节点存储一个访问位(比如在一个vector/array of bool中)。

现在再次从第二个节点运行相同的算法。每当你到达一个新节点时,检查它是否在第一次运行时被访问过。如果是这样的话,那么这个节点就是其中一个常见的父母,因此可以随意输出。