Концепция диаграммы
График - это расширение дерева в алгоритме. Дерево представляет собой структуру данных сверху вниз. Узлы имеют родительский узел (кроме корневого узла), расположенного сверху вниз. График не имеет концепции узлов отца-сына, а узлы на графике-все равные отношения, что делает результат еще более сложным.
Недоставленный график граф
Рисунок g = (v, e), где v представляет вершину, E представляет край края, а край-пара с фиксированной точкой (u, v), где (u, v) ∈V.
За последние два дня я столкнулся с алгоритмом о графиках. Я давно искал онлайн и не смог найти версию графиков Java в структуре данных и связанных с ними операций. Поэтому я нашел Java версию книги структуры данных и прочитал ее. Ниже приводится краткое изложение неопределенного хранения графика и приоритета глубины графиков, скомпилированных на основе объяснения в книге. Тем не менее, это обход может только пройти только подключенный график, и для пересечения не связанного графа его все равно необходимо изменить. Я надеюсь, что это будет полезно для нуждающихся.
пакет com.homework;/*** Определите класс стека*/class stackx {private final int size = 20; private int [] st; private int top; // инициализировать стек public stackx () {st = new int [size]; op = -1;} // инициализируйте стек public void push (int j) {st opper op] = j;} // open public pop () {out upp () {top) {top) {top) {top) {top) {top) {) {) {stop) {) {) {) {out upp (). Верхний элемент стека public int peak () {return st [top];} // определить, является ли стек пустым общедоступным Boolean isempty () {return (top ==-1);}}/** * Определите класс узлов в графике * @author Administrator * */Class Vertex {public Char Label; public boolean watrovisited; public vertex (war lab) {lab lab {lab lab {lab lab {lab wasvisited = false;}}/** * * Определите класс графа * @author Administrator * */Class Graph {private final int num = 20; private Vertex Vertexlist []; // Массив узлов Private int Adjmat [] []; // Матрица узла Private Private int Nverts; // текущее число узлов Private watchx thestac Graph () {vertexlist = new Vertex [num]; Adjmat = new int [num] [num]; nverts = 0; for (int i = 0; i <num; i ++) {for (int j = 0; j <num; j ++) adzmat [i] [j] = 0;}} // add public public addvertex (gar lab) {aresex vlostex) Vertex (lab);} // Добавить края между двумя узлами public void addedge (int start, int end) {adjmat [start] [end] = 1; adjmat [end] [start] = 1;} // выводить определенный узел public void displayvertex (int v) {system.out.print (vertexlist [v] .label); getAdjunvisitedvertex (int v) {for (int j = 0; j <nverts; j ++) {if (adjmat [v] [j] == 1 && vertexlist [j]. dfs () {vertexlist [0] .wasvisited = true; displayvertex (0); thestack = new Stackx (); thestack.push (0); while (! thestack.isempty ()) {int v = getAdjunvisitedvertex (thestack.peak ()); if (v ==-1) // Если узел не существует thestack.pop (); else {vertexlist [v] .wasvisited = true; displayvertex (v); thestack.push (v);}} for (int j = 0; j <nverts; j ++) vertexlist [j] .wasvisited = false;}} открытый класс GraphConnect {public static void main (string [] args) {{graph thegraph = new Graph (); thegraph.addvertex ('a'); thegraph.addvertex ('b'); thegraph.addvertex ('c'); thegraph.addvertex ('d'); thegraph.addvertex ('e'); thegraph.addedge (0, 1); // ab thegraph.addedge (1, 2); // bc thegraph.addedge (0, 3); // ad thegraph.addedge (3, 4); // de thegraph.addedge (2, 4); // ce system.print (»// de thegraph.addedge Посещение: "); thegraph.dfs (); System.out.println ();}}} Результаты работы программы:
Заказ посетил: сбит с толку
Суммировать
Выше приведено все подробное объяснение кода операции хранения и DFS программирования Java Неправомерной структуры графика. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на этот сайт:
Java Programming реализует на основе графического поиска поиск и поиск в ширине Полный код полный код
Пример реализации Java-первой глубины и ширина кода реализации Java
Код преобразования программирования Java для двух структур меню деревьев
Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!