Zadanie (struktura, wskaźniki)

0

Witam
Byłem w pewnej firmie na rozmowie kwalifikacyjnej, gdzie zadali mi zadanie z C++, mimo pewnej wiedzy (niekoniecznie wielkiej) nie mam pojęcia jak je rozwiązać. Czy ktoś mógłby pomóc?

Dany jest kod:

struct
{
int id; (nr id)
int parrent_id; (nr id rodzica)
int child_id; (nr id dziecka)
int *parrent; (wskaźnik do rodzica)
int *child; (wskaźnik do potmka)
int *next; (wskaźnik którym są połączone wszystkie wystąpienia tej struktury)
} entry

entry *global_list;

Oprócz tego wiemy, że istnieje kilka wystąpień (nie wiem jak to nazwać inaczej) tej struktury, które są ze sobą połączone w jakiś sposób (właśnie nie wiem jaki) wskaźnikiem *next. Każde z wystąpienia ma swój unikalny nr id oraz może posiadać rodzica (jednego) i potomka lub potomków. Należy napisać funkcję, która ustawi odpowiednio wskaźniki tak, żeby wskazywały na swoich rodziców i potomków. Czy jest to w ogóle możliwe i jak to zrobić? Czy wskaźnik może wskazywać na kilka obiektów? Będę wdzięczny za pomoc.

0

Trochę się pospieszyłem z odpowiedzią w każdym razie musisz po prostu zidentyfikować co jest czym po identyfikatorze.

Identyfikacja dziecka dla danego węzła.

szukasz wezla o id == id_dziecka i ustawiasz pointer
przechodzisz do dziecka
szukasz wezla o id == id_dziecka i ustawiasz pointer
przechodzisz do dziecka
robisz tak dopoki nie znajdziesz id == id_dziecka

Podobnie z rodzicem tylko szukasz 1 raz.

Strukturze przechodzisz za pomocą pointera next.

0

Poczytaj o tym, jak zbudowane są listy jednokierunkowe - to Ci pomoze w zrozumieniu tego *next.

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