【问题标题】:Tree inside a node in cc中节点内的树
【发布时间】:2017-06-08 20:32:14
【问题描述】:

我需要实现一棵二叉树,这棵主树的每个节点里面都有一棵二叉树。我所做的是在

之后创建这两个结构
typedef struct depart{
   int salary, employee;
   struct depart *left, *right;
}depart;

typedef struct tree{
    int ndepart;
    depart dpt;
    struct tree *left, *right;     
}tree;

我对主树没有任何问题。但我不明白如何在主树的每个节点内创建树,也没有找到任何关于这种类型的数据结构的地方。有人可以给我一些提示吗?

【问题讨论】:

  • “这棵主树的每个节点里面都有一个二叉树”不清楚。您确定您正确理解了要求吗?如果从字面上看,这只是意味着数据应该类似于struct tree *inner_tree 而不是depart dpt。但我的猜测是你可能误解了要求。二叉树的任何节点通过leftright 字段引用其他二叉树。也许就是这个意思。

标签: c data-structures


【解决方案1】:

这看起来(正如 cmets 中的 @kaylum 所提到的)就像一棵树的经典递归定义,其中显然每个左右节点都是(可能是空的)二叉树的根。如果是这样,那么你只需要形成一棵二叉树。


如果您确实需要在每个节点中添加一棵树,而这对我来说真的很奇怪,那么您只需要定义一个类似于本地根节点的东西,您可以在每个节点上附加本地树。由于您的描述有点模糊,我假设会有一棵主树,其中每个节点都有这样一棵额外的树,而所有额外的树都不包含更多的本地树。

为避免混淆,您可能应该定义一个包含 *left,*right,*local_treestruct main_tree_node 以及仅包含 *left*right 引用的第二个 struct local_tree_node

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多