我需要创建非二叉树结构的帮助。该结构必须包含一个node类,该类具有指向节点所需的尽可能多的指向节点的指针。这就是我感到困惑的地方。

这是我的课程node

class nodo{
public:
    int id;
    char info[255];
    nodo **son,*father;
    nodo()
    {
        strcpy(info,"");
        son=(nodo*)malloc(sizeof(nodo));
    }
};


据我了解,每次需要新的son指针时,我都必须执行以下代码:

son=(nodo*)realloc(sizeof(nodo)*t)


t是要添加的节点数加1。我似乎无法理解如何访问指针。例如,我已经添加了2个sons,我想访问第二个,该怎么办?

还有其他解决方法吗?

任何帮助将不胜感激。

最佳答案

您在编写C ++,而不是C。请勿尝试从头开始重新实现自己的动态数组。标准库已经有std::vector可以为您处理。

class nodo{
public:
    int id;
    std::string info;
    nodo *parent;
    std:::vector<nodo *> children;

    nodo(nodo *parent) : parent(parent)
    {
    }

    void add_child(nodo *child) { children.push_back(child); }
};

10-04 21:58