Существует ли двунаправленная постоянная структура данных с несколькими картами?

Другими словами, можем ли мы эффективно моделировать отношения «многие ко многим» в постоянной структуре данных?


Была предложена пара однонаправленных мультиотображений. Однако я не уверен, как это подойдет для удаления в постоянной структуре данных. Давайте возьмем случай, когда у нас есть ключи 1..4 со значениями "1" .. "4", и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые выглядят очень похожими для обоих направлений:

{ 1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...} Я не уверен, как это будет хорошо работать ...

Другими словами, можем ли мы эффективно моделировать отношения «многие ко многим» в постоянной структуре данных?


Была предложена пара однонаправленных мультиотображений. Однако я не уверен, как это подойдет для удаления в постоянной структуре данных. Возьмем случай, когда у нас есть ключи 1..4 со значениями "1" .. "4", и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые выглядят очень похожими для обоих направлений:

{ 1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...} Я не уверен, как это будет работать ...

Другими словами, можем ли мы эффективно моделировать отношения «многие ко многим» в постоянной структуре данных?


Была предложена пара однонаправленных мультиотображений. Однако я не уверен, как это подойдет для удаления в постоянной структуре данных. Возьмем случай, когда у нас есть ключи 1..4 со значениями "1" .. "4", и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые выглядят очень похожими для обоих направлений:

{ 1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...} m не уверен, как это подойдет для удаления в постоянной структуре данных. Возьмем случай, когда у нас есть ключи 1..4 со значениями "1" .. "4", и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые выглядят очень похожими для обоих направлений:

{ 1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...} m не уверен, как это подойдет для удаления в постоянной структуре данных. Возьмем случай, когда у нас есть ключи 1..4 со значениями "1" .. "4", и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые выглядят очень похожими для обоих направлений:

{ 1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...} {"1" => [2,3,4], "2" => [1,3,4], ...}

Теперь мы хотим полностью удалить элемент 1 из системы. Это требует изменения одного узла на первой карте, но требует изменения n-1 узлов на второй. Для n тысяч (что вполне вероятно в случае, если я рассматриваю это), не будет ли это довольно дорого? Или мульти-карта оптимизирована для обработки такого типа изменений? Это патологический случай, но все же ...


Quadtrees кажется захватывающей идеей. Я собираюсь еще раз подумать.

7
задан mentics 18 April 2011 в 06:49
поделиться