kb 12.12.2011 15:23 c8541125

Известный боян.
Есть односвязный список. Нужно определить, замыкается ли он.

Recommended by: @dorfe
1. 238328 12.12.2011 15:24 >>>

НЕВОЗМОЖНО

2. werehuman 12.12.2011 15:24 Psi+

я так понимаю, решение в O(N²) не считается?

3. kb → werehuman /2 12.12.2011 15:24 c8541125

да, не считается. O(N).

4. werehuman 12.12.2011 15:25 Psi+

а вообще, для этого в классе элемента списка делается отдельный маркер, который и указывает, проверен ли уже элемент или нет

5. kb → werehuman /4 12.12.2011 15:25 c8541125

ок. а теперь без маркеров.

6. kb → werehuman /4 12.12.2011 15:26 c8541125

скажем так, за константную память.

7. asmer 12.12.2011 15:26 Psi+

а проверка p→next == list.head чем плоха? Условие задачи неполное, или же задача тривиальна.

8. werehuman → asmer /7 12.12.2011 15:26 Psi+

а кто сказал, что замыкаться может только в голову?

9. kb → asmer /7 12.12.2011 15:26 c8541125

замыкаться он может куда угодно. типа в середину.

10. asmer → kb /9 12.12.2011 15:27 Psi+

ok бгг, а проверка всех p→next на null? Или список может быть глючным?

11. kb → asmer /10 12.12.2011 15:27 c8541125

че? наверное нет.

12. asmer → kb /11 12.12.2011 15:28 Psi+

ну если в списке все ссылки на next не null, значит он замыкается.

13. kb → asmer /12 12.12.2011 15:29 c8541125

как ты поймёшь, что все ссылки на next не null?

14. analizer 12.12.2011 15:30 mcabber

два итератора, один ходит на два элемента за раз, другой — на один. если вдруг окажутся равны на каком-то шаге — значит список замкнут

15. werehuman → analizer /14 12.12.2011 15:30 Psi+

отныне я эникейщик

16. kb → analizer /14 12.12.2011 15:30 c8541125

ты знал

17. analizer → kb /16 12.12.2011 15:31 mcabber

я её решил за время примерное равное времени написания этих двух реплаев, году эдак в 2008м

18. asmer 12.12.2011 15:32 Psi+

прикольно

19. kb → analizer /17 12.12.2011 15:32 c8541125

крут, че. а меня дважды подловили на подобных задачках. одна еще была про "столкнуть два программируемых паровозика", где под столкнуть подразумевалось также что один другого догонит) не догадался ни в один из разов.

20. asmer 12.12.2011 15:35 Psi+

реквестирую больше таких головоломок :)

22. dorfe → analizer /17 12.12.2011 17:25

Я тоже примерно тогда.

Do you really want to delete ?