我有一个是这样的分层数据:如何构建一个非递归的二叉树?
+----------------------+-------+
| name | depth |
+----------------------+-------+
| ELECTRONICS | 0 |
| TELEVISIONS | 1 |
| TUBE | 2 |
| LCD | 2 |
| PLASMA | 2 |
| PORTABLE ELECTRONICS | 1 |
| MP3 PLAYERS | 2 |
| FLASH | 3 |
| CD PLAYERS | 2 |
| 2 WAY RADIOS | 2 |
+----------------------+-------+
管,液晶和等离子的电视机孩子。 FLASH是MP3播放器的孩子。 MP3 PLAYERS,CD PLAYERS和2 WAY RADIOS是PORTABLE ELECTRONICS的子公司。你得到演习。
现在,我有一个结构节点,其中包含它的Id和它的孩子,等等,以构建一棵树。就像这样:
struct Node
{
int id;
list<Node*> children;
}
每个项目由一个ID,这是该行号标识(电子= 0,电视机= 1,等等),那么,谁是的孩子很容易找出节点。
这是我正在尝试构建的树。正如你所看到的,这棵树不是二元的。所以应用递归似乎不是一个容易的想法。如我错了请纠正我。
那么我该怎么做呢?帮帮我!
递归使您可以轻松探索多条路径。因此2个或更多分支使递归成为容易的选择。另一种方法(迭代)要求你手动跟踪你的进度(即做堆栈在递归版本中所做的工作)。但是对于这种情况,递归是不需要的。 – 2012-01-30 06:41:56