【发布时间】:2019-01-21 12:21:31
【问题描述】:
我尝试在stackoverflow上搜索这个问题,但找不到,如果它已经存在,请原谅。
所以,我想做的是创建一个遍历树并返回指向具有最高值的节点的指针的函数。树将是无序且不对称的,并且没有固定的深度。每个节点都有一个指向其父节点的指针、一个包含其子节点的列表和一个名为“值”的整数。树会有一个指向其根节点的指针,如下所示:
struct Node
{
private:
Node* parent;
list<Node> childs;
int value;
public:
// Getters, setters and constructors
}
struct Tree
{
private:
Node* root;
public:
// Getters, setters and constructors
}
而且,正如我之前所说,我希望创建一个遍历整个树的函数,也就是整个树中的每个节点,而不考虑深度,并返回一个指向具有最高值的节点的指针。我认为它需要递归,但我想不出办法。
如果我的问题看起来很愚蠢/愚蠢,请原谅我,但我真的需要帮助
【问题讨论】:
-
看深度优先和广度优先的图遍历。
-
这里的想法是实现一个
Tree::iterator类型,它允许遍历Tree的Nodes,然后在这个(和其他)上使用<algorithm>的力量问题。 ;-)