Что является лучшими структурами данных для выполнения следующей операции быстроВставка и быстрый поиск
- Вставить
- Найти.
Благодаря Авинаш
Что является лучшими структурами данных для выполнения следующей операции быстроВставка и быстрый поиск
Благодаря Авинаш
Хорошая реализация для списков смежности графа использует динамически выделенные векторы целых чисел.
Предположим, что на вашем графике имеется не более N узлов. Вы можете сохранить граф в массиве из N динамически выделенных векторов целых чисел. Это будет выглядеть следующим образом:
вектор [N]
Для вставки края от узла к узлу х у вы используете:
вектор [х] .С (у)
Это если граф разрежен (не имеет много ребер), вы можете быстро найти все исходящие края узла.
Если вы хотите найти, существует ли граница между x и y, вам нужно пройти через вектор [x] и выполнить поиск. Если вы хотите ускорить это, вы можете дополнительно использовать 2-мерный булевский массив, если число узлов невелико (менее 1000 - разумно).
Если у вас много узлов и вы хотите ускорить эту операцию, вы можете использовать хэш-карту.
по мне hash_map
Это домашнее задание? В реальном мире ответ «это зависит». – 2010-09-21 14:09:16
напрямую зависит от рационов вставок и находок; он также может зависеть от типа вставок и находок (может быть какая-то полезная корреляция в вставленных или запрошенных данных) – Unreason
Нет домашней работы, я пытаюсь понять лучшую реализацию для списка сопоставлений графов. – Avinash