Глубинный приоритет
Один человек приоритет приоритет глубины похож на ходьбу по лабиринту:
Как показано на рисунке, выберите край из отправной точки, чтобы ходить до следующей вершины. Прежде чем добраться до вершины, отмечено, что эта вершина прибыла.
Когда появляется отмеченная вершина, вернетесь к предыдущей вершине, а затем выберите вершину, которая не была достигнута.
Продолжайте отступать, когда нет прохода на перекресток, который был отступит.
Для подключенного компонента посмотрите на концепцию: чрезвычайно подключенный подгрупп непоправа Graph G называется подключенным компонентом G. Существует только один подключенный компонент любого подключенного графика, то есть он сам, а не подключенный неиспользованный график имеет несколько подключенных компонентов.
Давайте посмотрим на конкретные примеры:
Пакет com.datastructure.graph; // Найти компонент Unicom несанкционированного графика компонентов открытого класса {Private Graph; // массив для хранения ввода частного логического [] посещаемого; // хранить статус Private ComponentCount; // Номер подключенных компонентов. Компоненты (график графика) {this.graph = graph; componentcount = 0; // Начальное число подключенных компонентов равно 0 посещено = new Boolean [graph.v ()]; mark = new int [graph.v ()]; for (int i = 0; i <graph.v (); i ++) {посещение [i] = false; // Начальное состояние доступа. компонент узла помечен как -1} для (int i = 0; i <graph.v (); i ++) {// Приоритет приоритета глубины невидимого узла if (! Посещение [i]) {dfs (i); componentcount ++; // после dfs node to ind, подключенный компонент. {Посещение [i] = true; // Узел I был доступен для знаки [i] = componentCount; // Узел I принадлежит к текущему количеству подключенных компонентов (Marks) для (int node: graph.adjacentnode (i)) {// Traverse соседних узлов узла I в Graph If (! node); isConnected(int v, int w) {return mark[v] == mark[w];// judging whether the two nodes are connected based on the marks of the connected components to which the two nodes belong to}public int getComponentCount() {return componentCount;// Return the number of connected components in the graph}}//public class Components {//// private Graph G; // Ссылка на график // Private Boolean [] посетил; // Доступно ли узел во время процесса DFS // private int ccount; // Записать количество компонентов Китая Unicom // private int [] id; // Соответствующая отметка компонента China Unicom для каждого узла //// // Приоритет глубины приоритета графика // private void dfs (int v) {///////////////10 visit [v] = true; // Статус доступа узла V установлен на true // id [v] = ccount; // Соответствующая отметка Unicom of Node v установлена на ccount ///// //, пройдя соседную точку узла V i // for (int i: g.adjacentnode (v)) {// // Если приоритетная точка я не была достойна // if (! } //} /// // конструктор, чтобы найти подключенные компоненты неправедного графика // public Components (график графика) {//// // Инициализация алгоритма // g = график; //// // посетил доступ к состоянию узла в графике массива g // new boolean [gv ()]; принадлежит к графику хранения массива g // id = new int [gv ()]; //// // // Количество подключенных компонентов инициализируется до 0 // ccount = 0; //// // Установить все посещаемые массивы в false; Установите все идентификационные массивы на -1 // for (int i = 0; i <gv (); i ++) {// посещение [i] = false; // id [i] = -1; //} //// // Найти компонент Unicom графика // для (int i = 0; i <gv (); i ++ // // Доступ к node, который не был доступил//intiT (i); // // // приоритет глубины обход // dfs (i); // ccount ++; //} //} /// возвращает количество компонентов Unicom графика // int count () {// return ccount; // ///// // Запрос, то есть точка V и точка W, соединенные и то же самое, что и то же самое, и то же самое, что и точка, и то же самое. isconnected (int v, int w) {// assert v> = 0 && v <gv (); // assert w> = 0 && w <gv (); // return id [v] == id [w]; //} //}Количество компонентов проходов составляет 3
Суммировать
Выше приведено все содержание этой статьи о реализации программирования Java глубокого приоритетного обхода и примеров компонента подключения. Я надеюсь, что это будет полезно для всех. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Следуйте за wulin.com, и вы получите больше.