【发布时间】:2013-07-26 08:20:09
【问题描述】:
我需要根据传递给我的结构动态地将子节点添加到树的特定分支。例如,我有这样的结构:
struct my_struct
{
int a;
int b;
char c;
}
在我的函数中,移动到所需的节点后,我应该能够将子节点添加到特定节点,如下所示:
root
|
son------daughter----another_son
|
a---b--c
我的树节点结构如下:
struct tree{
string name;
int child_count;
int value;
vector< tree* > child;
};
由于我想稍后更新这些变量中的每一个,我想为结构中的每个变量分离出节点。由于可以在我不知情的情况下更新结构,因此我希望逻辑独立于结构。
【问题讨论】:
-
您好,实际上我不确定我是否理解您的问题:您是否正在寻找一种将任意结构(具有任意类型的任意成员集)“反汇编”到节点中的方法一棵树?我的意思是:设置一个通用节点类(或结构,如果你愿意的话)不是问题,但是创建函数来“填充”它更复杂,至少你可以认为你的所有结构都是祖先的孩子使用一些“自省启用”方法,如果你不想把代码搞得太乱……
-
基本上,我希望将不同的结构(或类)写入树的不同分支,以便我可以轻松阅读或更新它们。从上面的例子来看,“女儿”可能会得到一个 {int, float, char} 等结构。拥有一个通用的泛型类看起来很简单,但每次我想更新时,我都会读写额外的变量好。只是想知道这是否可能,否则将使用通用类。
标签: c++ data-structures struct tree