Myslim, ze pouzit rekurziu na nieco take je ako strielat kanonom po vrabcoch. Neviem, ci si si pozrel link, ktory som uviedol, ale je tam presne co potrebujes a je to na paru riadkov. Vezmime si priklad:
- mame zoznam, kde kazdy prvok oznacme velkym pismenom abecedy a bude v rozsahu od A po F
- chceme zmazat prvky od C po E
Postup bude taky, ze budes v slucke porovnat pomocny pointer ( nazvime ho temp ) ukazujuci na zaciatk zoznamu ( A ) a budes mu priradzovat stale hodnotu ->next, pokial sa nebude rovnat prvku, ktory chceme zmazat ( C ). Ak sa rovna, mozes vyskocit z aktualnej slucky ( aby zbytocne neboli vnorene cykly, ale to uz je na tebe, ako to implementujes ) a v dalsom cykle budes nastavovat prvku temp->next hodnotu dalsieho prvku->next, cize najsamprv to bude C->next a hodnotu C zmazez. Toto budes opakovat az pokial sa nedojde na koncovy pointer, cize po E.
Neviem, ci som to dobre vysvetlil, ale kazdopadne to najdes aj s prikladom na prilozenom linku. Rekurzia je ozaj zbytocne komplikovane riesenie, ale rozhodni sa uz ako chces.
|