{"id":165,"date":"2015-10-27T14:47:55","date_gmt":"2015-10-27T17:47:55","guid":{"rendered":"http:\/\/just.pro.br\/blog\/?p=165"},"modified":"2015-11-28T11:15:24","modified_gmt":"2015-11-28T14:15:24","slug":"codigo-de-busca-em-profundidade-em-grafos","status":"publish","type":"post","link":"https:\/\/just.pro.br\/blog\/2015\/10\/27\/codigo-de-busca-em-profundidade-em-grafos\/","title":{"rendered":"C\u00f3digo de busca em profundidade em grafos"},"content":{"rendered":"<p>Como solicitado, segue o c\u00f3digo que a turma de 2015.2 desenvolveu em sala de aula para o algoritmo de DFS.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n#include &lt;string.h&gt;\r\n\r\nint v, a;\r\nint *pai;\r\nint *dist;\r\nint *vist;\r\n\r\nint **leitura(int &amp;v, int &amp;a)\r\n{\r\n    int orig, dest, peso;\r\n    int **G;\r\n\r\n    \/\/ Obt\u00e9m n\u00famero de v\u00e9rtices e arestas\r\n    scanf(&quot;%d&quot;, &amp;v);\r\n    scanf(&quot;%d&quot;, &amp;a);\r\n\r\n    \/\/ Declara a matriz de adjac\u00eancias\r\n    G = (int **)malloc(sizeof(int) * v * v);\r\n    for (int i = 0; i &lt; v; i++)\r\n        G&#x5B;i] = (int *)malloc(sizeof(int) * v);\r\n\r\n    \/\/ Obt\u00e9m os dados de cada aresta\r\n    for (int i = 0; i &lt; a; i++)\r\n    {\r\n        scanf(&quot;%d %d %d&quot;, &amp;orig, &amp;dest, &amp;peso);\r\n        G&#x5B;orig]&#x5B;dest] = G&#x5B;dest]&#x5B;orig] = peso;\r\n    }\r\n\r\n    return G;\r\n}\r\n\r\nvoid percorrer(int dest)\r\n{\r\n    printf(&quot;%d&quot;,dest);\r\n    if(pai&#x5B;dest] != -1)\r\n    {\r\n        printf(&quot;&lt;-&quot;);\r\n        percorrer(pai&#x5B;dest]);\r\n    }\r\n}\r\n\r\nvoid dfs(int orig, int **G)\r\n{\r\n    vist&#x5B;orig] = 1;\r\n    for(int i = 0; i &lt; v; i++)\r\n    {\r\n        if(G&#x5B;orig]&#x5B;i] != 0 &amp;&amp; vist&#x5B;i] != 1)\r\n        {\r\n            pai&#x5B;i] = orig;\r\n            dist&#x5B;i] = dist&#x5B;orig] + G&#x5B;orig]&#x5B;i];\r\n            dfs(i,G);\r\n        }\r\n    }\r\n}\r\n\r\nint main(void)\r\n{\r\n    int orig = 0;\r\n    int dest = 0;\r\n\r\n    int **G = leitura(v, a);\r\n\r\n    pai = (int *) malloc (sizeof (int)*v);\r\n    dist = (int *) malloc (sizeof (int)*v);\r\n    vist = (int *) malloc (sizeof (int)*v);\r\n\r\n    for (int i = 0; i &lt; v; i++)\r\n    {\r\n        pai&#x5B;i] = -1;\r\n        dist&#x5B;i] = vist&#x5B;i]  = 0;\r\n    }\r\n\r\n    \/\/ Imprime a matriz de adjac\u00eancias\r\n    for (int i = 0; i &lt; v; i++)\r\n    {\r\n        for (int j = 0; j &lt; v; j++)\r\n            printf(&quot;%3d &quot;, G&#x5B;i]&#x5B;j]);\r\n        printf(&quot;\\n&quot;);\r\n    }\r\n\r\n    printf(&quot;\\nDigite a origem: &quot;);\r\n    scanf(&quot;%d&quot;,&amp;orig);\r\n    printf(&quot;Digite o destino: &quot;);\r\n    scanf(&quot;%d&quot;,&amp;dest);\r\n    dfs(orig,G);\r\n    percorrer(dest);\r\n\r\n    return 0;\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Como solicitado, segue o c\u00f3digo que a turma de 2015.2 desenvolveu em sala de aula para o algoritmo de DFS. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; int v, a; int *pai; int *dist; int *vist; int **leitura(int &amp;v, int &amp;a) &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/just.pro.br\/blog\/2015\/10\/27\/codigo-de-busca-em-profundidade-em-grafos\/\"> <span class=\"screen-reader-text\">C\u00f3digo de busca em profundidade em grafos<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,2],"tags":[],"class_list":["post-165","post","type-post","status-publish","format-standard","hentry","category-matematica-aplicada","category-unifacs"],"_links":{"self":[{"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":1,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions"}],"predecessor-version":[{"id":166,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions\/166"}],"wp:attachment":[{"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/media?parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/categories?post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/just.pro.br\/blog\/wp-json\/wp\/v2\/tags?post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}