 
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.adonaimedrado.pro.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Solu%C3%A7%C3%A3o%3A_Problema_do_grafo_conexo_%28Jandson_Santos%29</id>
		<title>Solução: Problema do grafo conexo (Jandson Santos) - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.adonaimedrado.pro.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Solu%C3%A7%C3%A3o%3A_Problema_do_grafo_conexo_%28Jandson_Santos%29"/>
		<link rel="alternate" type="text/html" href="https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Jandson_Santos)&amp;action=history"/>
		<updated>2026-05-27T04:33:54Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Jandson_Santos)&amp;diff=2914&amp;oldid=prev</id>
		<title>200.17.147.2: New page: &lt;code lang=&quot;cpp&quot;&gt;  #ifndef _VERTICE_H_ #define _VERTICE_H_  #include &lt;iostream&gt; #include &lt;vector&gt;  using namespace std;  class Vertice {    private:       vector&lt;int&gt; adjacencias;       bo...</title>
		<link rel="alternate" type="text/html" href="https://www.adonaimedrado.pro.br/wiki/index.php?title=Solu%C3%A7%C3%A3o:_Problema_do_grafo_conexo_(Jandson_Santos)&amp;diff=2914&amp;oldid=prev"/>
				<updated>2009-05-20T12:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;code lang=&amp;quot;cpp&amp;quot;&amp;gt;  #ifndef _VERTICE_H_ #define _VERTICE_H_  #include &amp;lt;iostream&amp;gt; #include &amp;lt;vector&amp;gt;  using namespace std;  class Vertice {    private:       vector&amp;lt;int&amp;gt; adjacencias;       bo...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;code lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifndef _VERTICE_H_&lt;br /&gt;
#define _VERTICE_H_&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Vertice&lt;br /&gt;
{&lt;br /&gt;
   private:&lt;br /&gt;
      vector&amp;lt;int&amp;gt; adjacencias;&lt;br /&gt;
      bool visitado;&lt;br /&gt;
   public:&lt;br /&gt;
      Vertice();&lt;br /&gt;
      void setAdjacencia(int x);&lt;br /&gt;
      int getAdjacencia(int x);&lt;br /&gt;
      bool consultaAdjacencia(int x);&lt;br /&gt;
      void setVisitado(bool x);&lt;br /&gt;
      bool getVisitado();&lt;br /&gt;
      unsigned int getQtdeAdjacencias();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif /*_VERTICE_H_*/&lt;br /&gt;
&lt;br /&gt;
Vertice::Vertice()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Vertice::setAdjacencia(int x)&lt;br /&gt;
{&lt;br /&gt;
   adjacencias.push_back(x);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int Vertice::getAdjacencia(int x)&lt;br /&gt;
{&lt;br /&gt;
   return adjacencias[x];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool Vertice::consultaAdjacencia(int x)&lt;br /&gt;
{&lt;br /&gt;
   int i;&lt;br /&gt;
   for(i=0; i&amp;lt;((int) adjacencias.size()); i++)&lt;br /&gt;
   {&lt;br /&gt;
      if(adjacencias.at(i) == x)&lt;br /&gt;
      {&lt;br /&gt;
         return true;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Vertice::setVisitado(bool x)&lt;br /&gt;
{&lt;br /&gt;
   visitado = x;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool Vertice::getVisitado()&lt;br /&gt;
{&lt;br /&gt;
   return visitado;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned int Vertice::getQtdeAdjacencias()&lt;br /&gt;
{&lt;br /&gt;
   return (int) adjacencias.size();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#ifndef _GRAFO_H_&lt;br /&gt;
#define _GRAFO_H_&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;quot;Vertice.cpp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
class Grafo&lt;br /&gt;
{&lt;br /&gt;
   private:&lt;br /&gt;
      vector&amp;lt;Vertice&amp;gt; lVertices;&lt;br /&gt;
      int tamGrafo;&lt;br /&gt;
   public:&lt;br /&gt;
      Grafo(int t);&lt;br /&gt;
      void lerEntradas(int qtde);&lt;br /&gt;
      Vertice getVertice(int i);&lt;br /&gt;
      int conexo();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif /*_GRAFO_H_*/&lt;br /&gt;
&lt;br /&gt;
Grafo::Grafo(int t)&lt;br /&gt;
{&lt;br /&gt;
   int i;&lt;br /&gt;
   tamGrafo = t;&lt;br /&gt;
   for(i=0; i&amp;lt;t; i++)&lt;br /&gt;
   {&lt;br /&gt;
      lVertices.push_back(Vertice());&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Vertice Grafo::getVertice(int i)&lt;br /&gt;
{&lt;br /&gt;
   return lVertices[i];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Grafo::lerEntradas(int qtde)&lt;br /&gt;
{&lt;br /&gt;
   int x, y;&lt;br /&gt;
   while(qtde--)&lt;br /&gt;
   {&lt;br /&gt;
      cin &amp;gt;&amp;gt; x;&lt;br /&gt;
      cin &amp;gt;&amp;gt; y;&lt;br /&gt;
      lVertices[x].setAdjacencia(y);&lt;br /&gt;
      lVertices[y].setAdjacencia(x);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int Grafo::conexo()&lt;br /&gt;
{&lt;br /&gt;
   vector&amp;lt;Vertice&amp;gt; pilha;&lt;br /&gt;
   unsigned int i, y;&lt;br /&gt;
   Vertice topo;&lt;br /&gt;
   for(i=0; i&amp;lt;lVertices.size(); i++)&lt;br /&gt;
   {&lt;br /&gt;
      lVertices[i].setVisitado(false);&lt;br /&gt;
   }&lt;br /&gt;
   pilha.clear();&lt;br /&gt;
   topo = lVertices[0];&lt;br /&gt;
   topo.setVisitado(true);&lt;br /&gt;
   pilha.push_back(topo);&lt;br /&gt;
   while (!pilha.empty())&lt;br /&gt;
   {&lt;br /&gt;
      topo = pilha.back();&lt;br /&gt;
      i=0;&lt;br /&gt;
      while(i&amp;lt;topo.getQtdeAdjacencias())&lt;br /&gt;
      {&lt;br /&gt;
         y = topo.getAdjacencia(i);&lt;br /&gt;
         if (lVertices[y].getVisitado())&lt;br /&gt;
         {&lt;br /&gt;
            i++;&lt;br /&gt;
         }&lt;br /&gt;
         else&lt;br /&gt;
         {&lt;br /&gt;
            lVertices[y].setVisitado(true);&lt;br /&gt;
            pilha.push_back(lVertices[y]);&lt;br /&gt;
            topo = pilha.back();&lt;br /&gt;
            i=0;&lt;br /&gt;
         }&lt;br /&gt;
      }&lt;br /&gt;
      pilha.pop_back();&lt;br /&gt;
   }&lt;br /&gt;
   for(i=0; i&amp;lt;((int) lVertices.size()); i++)&lt;br /&gt;
   {&lt;br /&gt;
      if (!lVertices[i].getVisitado())&lt;br /&gt;
      {&lt;br /&gt;
         return false;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
   int tamGrafo, qtdeArestas;&lt;br /&gt;
   cin &amp;gt;&amp;gt; tamGrafo;&lt;br /&gt;
   cin &amp;gt;&amp;gt; qtdeArestas;&lt;br /&gt;
   Grafo g(tamGrafo);&lt;br /&gt;
   g.lerEntradas(qtdeArestas);&lt;br /&gt;
   cout &amp;lt;&amp;lt; g.conexo() &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>200.17.147.2</name></author>	</entry>

	</feed>