Hirdetés

Új hozzászólás Aktív témák

  • Zsolt1
    tag

    Mert amit átadsz, az nem az egész tömb. Gondolj csak bele, durva is lenne, ha az egész tömböt mindegy egyes hívásnál lemásolnád. Elég költséges lenne a rekurziód.
    Amit átadsz, az egy pointer (memóriacím), a tömb kezdetére.

    Amit leírtál, az ezzel ekvivalens: void rekurzivfv(int* m)

    Igen a végén írtam ezt én is, hogy ez az egyik tippem, hogy miért módosul, de akkor van valami egyszerűbb módszer, amivel ki lehet azt küszöbölni, hogy megváltozzon (esetleg másféle átadás, stb...)? Szerintem az lenne a megoldás, ha az egész tömböt eltárolnám egy másolatban, csak ugye nagyon sokszor kéne a rekurzió miatt másolgatni a tömböt ide-oda és nem hiszem hogy túl optimális lenne. (szerk.: na most jól leírtam még egyszer, ami a válaszban volt) Gondolkodtam azon is, hogy csak azokat az elemeket másolgatom, amik a rekurzió alatt megváltoznak, de az valamiért nem működött.

    (#5312) EQMontoya
    Labirintusban útkeresés backtrack algoritmussal. Azért módosítom, mert ahogy halad befele, úgy mindig beleírom a már bejárt utat és a rekurzióból visszafele meg további lehetséges utakat keresek, mert az összes lehetségeset meg kell találnia. És itt kéne, hogy a backtrack miatti visszaugrásnál eltünjön a módosítás és visszakapjam a rekurzió előtti tömböt. Az nem okoz gondot, hogy ott nincs megjelölve, hogy jártam (sőt a másik irányból érkező utak miatt pont ezért kéne ez), mert az if szerkezet miatt ugyan azt az útvonalat többet már nem vizsgálja meg.

Új hozzászólás Aktív témák