Два наиболее распространенных способа представления графа - это матрицы смежности и списки смежности. Пусть n - число узлов.
Матрица смежности A представляет собой n x n матрицу булевых значений, такую, что A (i, j) = 1, если узлы i и j связаны, а 0, если они не являются.
В представлении списков смежности для каждого узла вы поддерживаете список узлов, к которым он подключен (рядом с ним).
Вопрос теперь в том, что вы хотите сделать с графиком. Если это что-то простое, возможно, имеет смысл бросить свое дело. Если нет, вы можете захотеть по всему миру использовать Java-библиотеку для обработки графиков. JGraphT упоминание.
Если вы хотите использовать матрицу смежности, вы можете легко представить ее на Java в виде 2D-массива bool или int. Вам нужно будет указать каждому узлу индекс. Самый простой способ: сделать это, чтобы сохранить объекты Node в массиве, всегда в том же порядке. Таким образом, у вас действительно будет две структуры данных: массив узлов, которые представляют собой объекты, которые представляют все ваши узлы, и матрицу смежности, которая ссылается на узлы по их индексам.
После заполнения матрицы, если вы можете легко найти узел, который подключен к большинству других узлов, добавив значения (0 и 1) во все столбцы (или строки) и найдя максимум. Надеюсь это поможет.
думаю, что матрица смежности - это то, что я хочу. хотите сделать что-то простое, например, найти узлы, которые наиболее связаны между собой. можете ли вы дать мне представление о том, как создать матрицу смежности из java pov ... где input будет представлять собой матрицу nxn, на основе которой будут созданы узлы – user41685 2008-12-08 03:50:46