Implementação da representação dos vários tipos de grafos em Python
-
Nó simples => "No"
A classe implementada para o nó simple está no arquivo "No.py".
Ela possui o atributo identificador que pode ser tanto um inteiro quanto uma string, e um método para retornar o nó como string.
Por exmplo se possuirmos um nó no qual identificador = 1, sua string ficará será "[1]". -
Nó valorado => "NoValorado"
A classe implementada para o nó valorado está no arquivo "No.py".
Ela é uma extensão da classe "No" citada acima com o acréscimo do atributo valor.
O stringfy herdado da classe foi adaptada para acrescentar o atributo valor.
Por exmplo se possuirmos um nó no qual identificador = 1 e valor = 15, sua string ficará será "[1] {15}". -
Nó arvore => "NoArvore"
A classe implementada para o nó de arvore está no arquivo "No.py".
Ela é uma extensão da classe "No" citada acima com o acréscimo dos atributos pai e distancia.
O stringfy herdado da classe foi adaptada para acrescentar o atributo valor.
Por exmplo se possuirmos um nó no qual identificador = 1, pai = 15 e distancia = 2, sua string ficará será "[1] {15} (2)".
-
Aresta simples => "Aresta"
A classe implementada para a aresta simples está no arquivo "Aresta.py".
Ela possui dois atributos origem e destino que são referentes aos identificadores dos dois nós conexos, e um método para retornar a aresta como string.
Por exmplo se possuirmos uma aresta na qual liga o nó identificador = 1 com o nó identificador = 2, sua string ficará será "[1, 2]". -
Aresta valorada => "ArestaValorada"
A classe implementada para a aresta valorada está no arquivo "Aresta.py".
Ela é uma extensão da classe "Aresta" citada acima com o acréscimo do atributo valor.
O stringfy herdado da classe foi adaptada para acrescentar o atributo valor. Por exmplo se possuirmos uma aresta na qual liga o nó identificador = 1 com o nó identificador = 2 com um valor = 15, sua string ficará será "[1, 2] {15}".
-
Arvore simples => "Arvore"
A classe implementada para a arvore simples está no arquivo "Arvore.py".
Ela possui dois atributos raiz e nos que são referentes ao nó raiz e à lista de nos da arvore respectivamente, e um método para inserir um nó na árvore.
-
Grafo simples => "Grafo"
A classe implementada para o grafo simples está no arquivo "grafo.py".
Ela possui três atributos nós, arestas e arvores que são listas para armazenar os respectivos objetos do grafo.
Essa classe também possui os seguintes métodos:- getNo(identificador): método que retorna o objeto nó se o nó de identificador existir no grafo.
- getAresta(origem, destino): método que retorna o objeto aresta se a aresta de origem e destino existir no grafo.
- getAdj(identificador): método que retorna uma lista dos nós adjacentes do nó de identificador.
- insertNo(no): método que insere o nó passado como parâmetro no grafo.
- insertAresta(aresta): método que insere a aresta passada como parâmetro no grafo.
- bfs(identificador): método que retorna a arvore criada utilizando o algoritmo breadth-first search tendo como raíz o nó de identificador.
- printNos(): método que imprime todos os nós do grafo.
- printArestas(): método que imprime todas as arestas do grafo.
- str(): método que imprime todo o grafo. seguindo o modelo "( nó 1, nó 2, nó n; aresta 1, aresta 2, aresta n )"
-
Grafo simples com nó valorado => "Grafo_NoValorado"
A classe implementada para o grafo simples com nó valorado está no arquivo "grafo.py".
Ela é uma extensão da classe "Grafo" citada acima expecializada para comportar nós valorados. -
Grafo simples com aresta valorada => "Grafo_ArestaValorada"
A classe implementada para o grafo simples com aresta valorada está no arquivo "grafo.py".
Ela é uma extensão da classe "Grafo" citada acima expecializada para comportar arestas valoradas. -
Grafo simples com aresta e nó valorados => "Grafo_Aresta_e_NoValorados"
A classe implementada para o grafo simples com aresta e nós valorados está no arquivo "grafo.py".
Ela é uma extensão da classe "Grafo" citada acima expecializada para comportar tanto arestas quanto nós valorados. -
Grafo direcional => "DiGrafo"
A classe implementada para o grafo direcional está no arquivo "grafo.py".
Ela é uma extensão da classe "Grafo" citada acima expecializada para comportar arestas direcionais. -
Grafo direcional com nó valorado => "DiGrafo_NoValorado"
A classe implementada para o grafo direcional com nó valorado está no arquivo "grafo.py".
Ela é uma extensão da classe "DiGrafo" citada acima expecializada para comportar nós valorados. -
Grafo direcional com aresta valorada => "DiGrafo_ArestaValorada"
A classe implementada para o grafo direcional com aresta valorada está no arquivo "grafo.py".
Ela é uma extensão da classe "DiGrafo" citada acima expecializada para comportar arestas valoradas. -
Grafo direcional com aresta e nó valorados => "DiGrafo_Aresta_e_NoValorados"
A classe implementada para o grafo direcional com aresta e nós valorados está no arquivo "Digrafo.py".
Ela é uma extensão da classe "DiGrafo" citada acima expecializada para comportar tanto arestas quanto nós valorados.