извинения сначала, английский не мой первый язык.График, представленный как список смежности, как бинарное дерево, возможно ли это?
Итак, вот мое понимание на графике, представленном в виде списка соприкосновений: обычно используется для разреженного графика, что имеет место для большинства графиков, и использует списки V (количество вершин). поэтому, V head pointers + 2e (# of edge) узлы для неориентированного графика. Поэтому сложность пространства = O (E + V) Поскольку любой узел может иметь до V-1 ребер (исключая себя), он имеет сложность времени O (V) для проверки смежности узла.
Что касается проверки всех ребер, то он принимает O (2e + V) так, что O (v + e) Теперь, поскольку он используется главным образом для разреженного графика, редко O (v) проверяет смежность, но просто количество ребер данной вершины имеет (что является O (V) в худшем случае, поскольку V-1 является возможным максимумом)
Что мне интересно, возможно ли сделать бинарное дерево списка (реберных узлов) ? Итак, чтобы выяснить, смещен ли узел A к узлу B, сложность времени будет O (logn), а не линейной O (n). Если это возможно, на самом деле это делается довольно часто? Также, как называется такая структура данных? Я был googling, если такие комбинации возможны, но ничего не могли найти. Я был бы очень благодарен, если бы кто-нибудь мог объяснить это мне подробно, поскольку я новичок в структуре данных. Спасибо.
Редактировать: Я знаю, что бинарный поиск может выполняться на массивах. Я говорю об объединенном представлении списка, я думал, что я сделал это очевидным, когда я сказал голова в списках, но ничего себе
Почему бы не представлять их как хеш-таблицу? При правильном управлении коэффициентом заполнения и предварительным распределением слотов поиск в хеш-таблице производится с помощью O (1). –
Как вы представляете его в двоичном дереве? Что содержится в узле дерева? Может ли он обрабатывать ориентированный граф с несколькими краями/внутренними краями? Я сомневаюсь, что он действительно может ответить на запрос типа «Является ли узел A рядом с узлом B» в O (lg n) ... – shole
Это, скорее всего, разреженный граф и с несколькими вершинами. Я сомневаюсь, что могу использовать хэш-таблицу. – Tearin