我正在寻找一种连接不同结构创建的节点的方法,以创建链表和类似的东西。我尝试了几种方法,但未能做到。你能帮助我吗?

这是我的代码:

struct nodeA{
    int somedata;
    nodeA* next;
};

struct nodeB{
    int someData;
    nodeB* next;
    nodeB* someAnotherNode;
};

int main(){

    nodeA* A0 = new nodeA; //Just creating some nodes...
    nodeA* A1 = new nodeA;
    nodeA* A2 = new nodeA;

    nodeB* B0 = new nodeB;

    A0 -> next = A1; //I can connect these nodes
    A1 -> next = A2; //in this way.

    A2 -> next = B0; //but, I can't do that!

    return 0;
}

最佳答案

使用类和polymorphism

class NodeA {
 public:
  int somedata;
  NodeA* next;
};

class NodeB : public NodeA {
  NodeB* someAnotherNode;
};

int main(){
    NodeA* A0 = new NodeA; //Just creating some Nodes...
    NodeA* A1 = new NodeA;
    NodeA* A2 = new NodeA;

    NodeB* B0 = new NodeB;

    A0 -> next = A1; //I can connect these Nodes
    A1 -> next = A2; //in this way.

    A2 -> next = B0; //but, I *can* do that!

    return 0;
}

09-25 15:25