palm mute wrote:
> C>Задача простая:
> C>1) Дан обычный линейный однонаправленый список.
> C>2) Необходимо придумать механизм транзакций, чтобы можно было поменять
> C>элемент из середины списка, не влияя на клиентов вне транзакции.
> C>3) Этот механизм не должен приводить к копированию списка.
> По моему скромному имху, "дан линейный однонаправленный список ..." —
> это не задача. Задача — это, например, перевести деньги со счета на счет.
Да без проблем. Куда грузовичком документацию по проекту подвозить?
Просто модельные примеры, где у одного объекта вычитается сумма, а к
другому добавляется — это просто детский лепет.
У меня была реальная задача версирования графа треугольников
(триангуляция большой карты высот) — я самую ее суть написал.
> Теперь по сути вопроса. Если дан список неизменяемых значений (целых
> чисел, например) — то задача некорректно поставлена, т.к. и без
> транзакций нельзя поменять элемент в середине списка, не скопировав
> элементы, ему предшествующие.
А ты представь, что объекты — изменяемые. Так как с иммутабельными
объектами — все просто.
Posted via RSDN NNTP Server 2.0