zeiger
-
ich versuche mich gerade an dem josephus problem und habe ein paar fragen:
wenn alle in einem kreis stehen und jeder zweite stirbt, dann kann ich das in einer liste mit akteull-next=nachfolger->next machen denke ich mir.
aber was passiert wenn jeder dritte stirbt, kann ich dann akteull->next=nachfolger->next->next machen?
aber eigentlich wär das ja doof, dann müsste ich immer wenn die sich der wert meiner auszählung ändert mein ganzes programm ändern!
sicher kann man das auch mit laufvariablen machen?
oder?
-
du kannst einfach eine funktion schreiben, die dir eine beliebige anzahl an schritten iteriert. so etwas hier zum beispiel:
struct person* move_forward(struct person* aktuell, unsigned int step=1) { struct person* temp=aktuell; while (step) { if (temp->nachfolger==NULL) { printf("internal error...."); return NULL; } temp=temp->nachfolger; --step; } return temp; }