on 2008-09-24 03:50 am (UTC)
Posted by [identity profile] cema.livejournal.com
[livejournal.com profile] avva вроде бы обсуждал это не так давно, или я путаю?

on 2008-09-24 06:49 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Не припомню.

on 2008-09-24 11:08 am (UTC)
Posted by [identity profile] ex 314truha (from livejournal.com)
Понравилась в коментах идея как реализовать remove(i)

on 2008-09-24 11:10 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Не глядя, я бы предположил, что продублировав структуру из двух массивов и счетчика: добавление во вторую является удалением из первой. Правда, работает только один раз.

on 2008-09-24 11:13 am (UTC)
Posted by [identity profile] ex 314truha (from livejournal.com)
Нет. Поменять местами dense[n-1] dense[i] с соответствующим изменением индекса в sparse и уменьшить n на единицу :)

on 2008-09-24 11:15 am (UTC)
Posted by [identity profile] dimrub.livejournal.com
Да, действительно.

on 2008-09-24 11:28 am (UTC)
Posted by [identity profile] ex 314truha (from livejournal.com)
Однако тут возможны грабли. В Статье среди прочего говорится о том, что dense является как бы стеком, и мы получаем возможность бегать по элементам sparse в порядке, в котором они были занесены (или в обратном), что делает возможным применение этой схемы например в алгоритмах на графах.
Однако приведённая имплементация remove сводит всё на нет, так как нарушается порядок элементов в dense.
Нет щастя в жизни...

on 2008-09-24 11:15 am (UTC)
Posted by [identity profile] ex 314truha (from livejournal.com)
Даже не поменять местами; достаточно dense[n-1] скопировать в dense[i] так как после удаления бывшее dense[i] никого не интересует

Profile

dimrub: (Default)
Adventures of a somewhat curious character

September 2013

S M T W T F S
12 345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2025 08:02 am
Powered by Dreamwidth Studios