(←) предыдущая запись ; следующая запись (→)
Научился ломать бабушек в поликлинике. Занял очередь и дождался, пока займут за мной. Снял куртку. Готово: теперь вся очередь вынуждена дожидаться, пока пройдёт человек в куртке, а его всё нет и нет.
Наивный читатель мог бы подумать, будто это проблема структуры linked list. Отчасти это правда: можно думать об этой ситуации как о некорректном удалении элемента из связного списка, при которой соседи удалённого элементы оказались несшиты в итоговом списке. Но реальная проблема в том, что никакого удаления не произошло.
Дело в том, что очередь в поликлинике использует помимо (одно)связного списка ещё и hash table, которая позволяет по приметам найти человека. Некоторые бабушки используют в качестве ключа изменяемые признаки типа одежды, а потом пропускают момент, когда ключ меняется и больше не могут найти человека. Вот примерно поэтому в качестве ключа хеш-таблицы нельзя использовать изменяемые объекты.