2011-05-02 3 views
0

Я искал много за последние несколько дней по этой теме, и я не понимаю, как я мог бы сделать неориентированный граф без веса. Может ли кто-нибудь сказать мне, какую структуру я должен использовать, и простой алгоритм? Заранее спасибо!!!C++ неориентированные графики

+1

Что вы пытаетесь достичь? Это домашнее задание? – Andrew

+0

Простой алгоритм для чего? – Jordan

+1

Какой вес имеет к этому отношение? Вы пробовали реализовать ребро в виде пары указателей между двумя узлами, по одному в каждом направлении? Что вы хотите, чтобы «простой алгоритм» * делал *? – Beta

ответ

6

Нет особых требований, которые заставляют вас придавать веса вашим краям. Ваша матрица смежности может иметь двоичные записи 1-0 или true-false для указания соединения между узлами. Все алгоритмы графов применяются как обычно.

очень полезная лекция о графах: http://www.youtube.com/watch?v=ylWAB6CMYiY

+0

Не могли бы вы сделать это со связанными списками? По простому алгоритму я имею в виду основные функции или необходимые элементы – Yiyi

+0

@Yiyi Граф - уникальная структура данных сама по себе. Узлы действительно «связаны», но реализация отличается от связанных списков. Я предлагаю вам взглянуть на некоторые университетские лекции на youtube (возможно, MIT или канал UCBerkley) в случае, если вы начинаете. Этот профессор отлично подходит http://www.youtube.com/watch?v=ylWAB6CMYiY. Проверьте это – Pepe

0

В небольших выработках на P.R.s ответ. Стандартное представление матрицы можно легко интерпретировать как верхний (северо-восточный), находящийся сверху-вниз (от B до A), слева оставленный сверху (юго-запад, здесь нет). Один (1) в любой позиции (возможно, булево внутри) указывает на невзвешенное соединение.

x A B C D 
A 0 1 0 0 
B 0 0 1 1 
C 0 0 0 1 
D 0 0 0 0 

Будет означать, что A не соединен ни с узлами. B подключен к A. C подключен к B. D подключен к B и C.

Этот конкретный пример создаст дерево с D как корень с дочерними элементами B и C, A в качестве дочернего элемента B. A и C листьев.

Обратите внимание, что невзвешенное свойство действительно не очень упрощает. Только в упражнении по реализации чистого указателя, но это совершенно бессмысленно FAPP. Вместо adjacency listadjacency matrix может дать вам преимущества использования памяти.

Смежные вопросы