usłyszałem pytanie Wywiad: „Broszura do pojedynczo-połączonej listy do tyłu, w stałym czasie i przestrzeni liniowej”Drukuj pojedynczo-połączonej listy do tyłu, w stałym czasie i przestrzeni liniowej
Moje rozwiązanie polegało na odwróceniu listy odsyłaczy i wydrukowaniu jej w ten sposób. Czy istnieje inne rozwiązanie, które nie jest destrukcyjne?
Tak właśnie myślałem. Czy jest to dobra praktyka w realnej sytuacji?(Zakładając przejście przez odniesienie) –
Właściwie można by go najpierw odwrócić bez drukowania, a następnie wydrukować, a następnie ponownie go odwrócić. – x4u
@Razor: ish. Zwykle, jeśli przekażesz coś do druku, możesz oczekiwać, że odwiedzający potraktuje to jako niemodyfikowalne. Tak więc w językach, które dbają o takie rzeczy, albo funkcja musi (niespodziewanie) wziąć parametr inny niż const, albo sama funkcja musi zawierać const-unsafe code. Musiałbyś zdecydować, czy korzyści są warte dodatkowego ryzyka napisania niepoprawnego kodu, czy lepiej byłoby zrobić odwróconą kopię listy lub użyć zamiast tego struktury dwukierunkowej (np. Lista podwójnie związana). Jeśli jest to wystarczająco poważna korzyść, wszystko jest dobrą praktyką ;-) –