lista w liście - jak zrobić?

0

Witam

Mam za zadanie napisać napisać listę (Glowna), która będzie przechowywać w każdej swojej komórce liczbę całkowitą będącą identyfikatorem (int ID), oraz dwie listy jednokierunkowe (start, stop), które z kolei będą przechowywać pary punktów (x,y). Zrobilem to tak:

struct Punkty {
       int x;
       int y;
       struct Punkty *next;
};
typedef struct Punkty *ListWewn;

struct Glowna {
       int ID;
       ListWewn start;
       ListWewn stop;
       struct Glowna *next;
};
typedef struct Glowna *List;

Czy jest to poprawne?

Pierwszy problem pojawia się w funkcji, w której chcę dodać nowy identyfikator i stworzyć puste struktury start, stop:

void add_id(List *x, int id)
{
     List nowy, pomoc;
     nowy=malloc(sizeof(struct Glowna));
     nowy->value=id;
     ListWewn (nowy->start);
     nowy->start=malloc(sizeof(struct Punkty));
     nowy->start=NULL;
     ListWewn (nowy->stop);
     nowy->stop=malloc(sizeof(struct Punkty));
     nowy->stop=NULL;
     nowy->next=NULL;
     if(*x==NULL)
        *x=nowy;
     else
     {
         pomoc=*x;
         while(pomoc->next!=NULL)
               pomoc=pomoc->next;
         pomoc->next=nowy;
     }
}

Jednak w liniach ListWewn (nowy->start);, ListWewn (nowy->stop); DevC++ zgłasza:
syntax error before '->' token

dlaczego?

0

tutaj

       ListWewn start;

ListWewn wygląda jak typ, a tutaj

 ListWewn (nowy->start);

jak funkcja. zdecyduj się co to jest.

0

No to oczywiście ma być typ, który wskazuje na pewną stukturę Punkty. Czyli powinienem pozbyć się nawiasów i napisać:
ListWewn nowy->start;

? To jednak nie pomaga.

0

Poczytaj podstawy.
Jeszcze raz: co to ma być? Deklaracja zmiennej czy wywołanie funkcji?

1 użytkowników online, w tym zalogowanych: 0, gości: 1