vendredi 8 mai 2015

How I can add a adjancy list to a node of defined type in C?

I have a defined node type for graph node:

    struct node{
    int data;
    int neighboursNumber;
    node * neighbours;
    };

And I am trying to add for each node some neighbours like this:

    node * n1 = (node *)malloc(sizeof(node));
    n1->data = 1;
    n1->neighboursNumber = 2;
    n1->neighbours = (node *)malloc(sizeof(node) * n1->neighboursNumber);

    node * n2 = (node *)malloc(sizeof(node));
    n2->data = 2;
    n2->neighboursNumber = 1;
    n2->neighbours = (node *)malloc(sizeof(node) * n2->neighboursNumber);

    node * n3 = (node *)malloc(sizeof(node));
    n3->data = 3;
    n3->neighboursNumber = 1;
    n3->neighbours = (node *)malloc(sizeof(node) * n3->neighboursNumber);

    n1->neighbours[0] = n2;
    n1->neighbours[1] = n3;

    n2->neighbours[0] = n1;
    n3->neighbours[0] = n1;

But I get an error at building

 error C2679: binary '=' : no operator found which takes a right-hand operand 
 of type 'node *' (or there is no acceptable conversion)

Isn't that the correct way to do it?

Aucun commentaire:

Enregistrer un commentaire