~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ FC7B7F33079E1A61F2C1064935DE5EEF__1715825220 ✰
Заголовок документа оригинал.:
✰ Adjacency list - Wikipedia ✰
Заголовок документа перевод.:
✰ Список смежности — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Adjacency_list ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/fc/ef/fc7b7f33079e1a61f2c1064935de5eef.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/fc/ef/fc7b7f33079e1a61f2c1064935de5eef__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 23:06:02 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 16 May 2024, at 05:07 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Список смежности — Википедия Jump to content

Список смежности

Из Википедии, бесплатной энциклопедии
Этот неориентированный циклический граф можно описать тремя неупорядоченными списками {b, c }, {a, c }, {a, b }.

В теории графов и информатике список смежности представляет собой набор неупорядоченных списков, используемых для представления конечного графа . Каждый неупорядоченный список в списке смежности описывает набор соседей определенной вершины в графе. Это одно из нескольких часто используемых представлений графов для использования в компьютерных программах.

Детали реализации [ править ]

График, изображенный выше, имеет такое представление списка смежности:
а рядом с До нашей эры
б рядом с а, в
с рядом с а, б

Представление списка смежности графа связывает каждую вершину графа с набором соседних вершин или ребер. Существует множество вариаций этой базовой идеи, отличающихся деталями того, как они реализуют связь между вершинами и коллекциями, тем, как они реализуют коллекции, включают ли они как вершины, так и ребра или только вершины в качестве объектов первого класса, и в чем они заключаются. типы объектов используются для представления вершин и ребер.

  • Реализация, предложенная Гвидо ван Россумом, использует хеш-таблицу для связи каждой вершины графа с массивом соседних вершин. В этом представлении вершина может быть представлена ​​любым хешируемым объектом. Не существует явного представления ребер как объектов. [1]
  • Кормен и др. предложите реализацию, в которой вершины представлены индексными номерами. [2] В их представлении используется массив, индексированный по номеру вершины, в котором ячейка массива для каждой вершины указывает на односвязный список соседних вершин этой вершины. В этом представлении узлы односвязного списка можно интерпретировать как краевые объекты; однако они не хранят полную информацию о каждом ребре (они хранят только одну из двух конечных точек ребра), а в неориентированных графах для каждого ребра будет два разных узла связанного списка (по одному в списках для каждого из двух ребер). концы ребра).
  • Объектно -ориентированная структура списка инцидентностей, предложенная Гудричем и Тамассией, имеет специальные классы вершинных объектов и реберных объектов. Каждый объект вершины имеет переменную экземпляра, указывающую на объект коллекции, в котором перечислены соседние объекты ребер. В свою очередь, каждый объект ребра указывает на два объекта вершины в своих конечных точках. [3] Эта версия списка смежности использует больше памяти, чем версия, в которой соседние вершины перечислены напрямую, но существование явных объектов ребер обеспечивает дополнительную гибкость при хранении дополнительной информации о ребрах.

Операции [ править ]

Основная операция, выполняемая структурой данных списка смежности, заключается в сообщении списка соседей данной вершины. Используя любую из описанных выше реализаций, это можно выполнить за постоянное время для каждого соседа. общее время сообщения обо всех соседях вершины v пропорционально степени v . Другими словами ,

Также возможно, но не так эффективно, использовать списки смежности для проверки наличия или отсутствия ребра между двумя указанными вершинами. В списке смежности, в котором соседи каждой вершины не отсортированы, проверка существования ребра может выполняться за время, пропорциональное минимальной степени двух заданных вершин, путем последовательного поиска по соседям этой вершины. Если соседи представлены в виде отсортированного массива, вместо этого можно использовать двоичный поиск , занимающий время, пропорциональное логарифму степени.

Компромиссы [ править ]

Основной альтернативой списку смежности является матрица смежности матрица , строки и столбцы которой индексируются по вершинам, а ячейки содержат логическое значение, указывающее, присутствует ли ребро между вершинами, соответствующими строке и столбцу ячейки. Для разреженного графа (в котором большинство пар вершин не соединены ребрами) список смежности значительно более эффективен, чем матрица смежности (хранящаяся в виде двумерного массива): использование пространства списка смежности пропорционально количеству ребер и вершин в графе, а для хранимой таким образом матрицы смежности пространство пропорционально квадрату числа вершин. Однако можно хранить матрицы смежности более эффективно, используя линейное пространство в списке смежности, используя хеш-таблицу , индексированную парами вершин, а не массив.

Другое существенное различие между списками смежности и матрицами смежности заключается в эффективности выполняемых ими операций. В списке смежности соседи каждой вершины могут быть перечислены эффективно за время, пропорциональное степени вершины. В матрице смежности эта операция занимает время, пропорциональное числу вершин в графе, которое может быть существенно больше степени. С другой стороны, матрица смежности позволяет проверить, являются ли две вершины смежными друг с другом за постоянное время; список смежности поддерживает эту операцию медленнее.

Структуры данных [ править ]

Для использования в качестве структуры данных основной альтернативой списку смежности является матрица смежности. Поскольку каждая запись в матрице смежности требует только одного бита, ее можно представить очень компактно, занимая всего | В | 2 /8 байт непрерывного пространства, где | В | — количество вершин графа. Эта компактность не только позволяет избежать бесполезного использования пространства, но и способствует локальности ссылок .

Однако для разреженного графа списки смежности требуют меньше места, поскольку они не тратят пространство для представления отсутствующих ребер. Используя простую реализацию массива на 32-битном компьютере, список смежности для неориентированного графа требует около 2⋅(32/8)| Е | = 8| Е | байт пространства, где | Е | — количество ребер графа.

Учитывая, что неориентированный простой граф может иметь не более (| V | 2 −| V |)/2 ≈ V 2 ребер, допускающих циклы, мы можем положить d = | Е |/| В | 2 обозначают плотность графа. Тогда 8| Е | > | В | 2 /8 когда | Е |/| В | 2 > 1/64 , то есть представление списка смежности занимает больше места, чем представление матрицы смежности, когда d > 1/64 . Таким образом, граф должен быть достаточно разреженным, чтобы оправдать представление списка смежности.

Помимо компромисса по пространству, различные структуры данных также облегчают выполнение различных операций. Найти все вершины, смежные с данной вершиной, в списке смежности так же просто, как прочитать список. При использовании матрицы смежности вместо этого необходимо сканировать всю строку, что занимает время O (| V |) . Существует ли ребро между двумя заданными вершинами, можно определить сразу с помощью матрицы смежности, при этом потребуется время, пропорциональное минимальной степени двух вершин с помощью списка смежности.

Ссылки [ править ]

  1. ^ ван Россум, Гвидо (1998). «Шаблоны Python — реализация графов» . Архивировано из оригинала 25 июня 2016 г. Проверено 17 августа 2014 г.
  2. ^ Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Штейн, Клиффорд (2001). Введение в алгоритмы , второе издание . MIT Press и McGraw-Hill. стр. 527–529 раздела 22.1: Представления графов. ISBN  0-262-03293-7 .
  3. ^ Гудрич, Майкл Т .; Тамассия, Роберто (2002). Разработка алгоритмов: основы, анализ и примеры из Интернета . Джон Уайли и сыновья. ISBN  0-471-38365-1 .

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: FC7B7F33079E1A61F2C1064935DE5EEF__1715825220
URL1:https://en.wikipedia.org/wiki/Adjacency_list
Заголовок, (Title) документа по адресу, URL1:
Adjacency list - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)