class Profundidade:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        self.fronteira = Pilha(20)
        self.fronteira.empilhar(inicio)
        self.achou = False

    def buscar(self):
        topo = self.fronteira.getTopo()
        print('Topo: {}'.format(topo.nome))

        if topo == self.objetivo:
            self.achou = True
        else:
            '''For para percorrer todos os vertices do topo'''

            for a in topo.adjacentes:
                if self.achou == False:
                    print('Verificando se já visitado: {}'.format(
                        a.cidade.nome))
                    if a.cidade.visitado == False:
                        a.cidade.visitado = True
                        self.fronteira.empilhar(a.cidade)
                        Profundidade.buscar(self)

        print('Desempilhou: {}'.format(self.fronteira.desempilhar().nome))
Esempio n. 2
0
class Backtracking:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        self.fronteira = Pilha(16)
        self.fronteira.empilhar(inicio)
        self.achou = False

    def buscar(self):
        topo = self.fronteira.getTopo()
        print('Topo {}'.format(topo.nome))

        if topo == self.objetivo:
            self.achou = True
            print('Objetivo alcançado!')
        else:
            for a in topo.adjacentes:
                if self.achou == False:
                    if a.letras.visitado == False:
                        a.letras.visitado = True
                        print('Estado visitado: {}'.format(a.letras.nome))
                        self.fronteira.empilhar(a.letras)
                        Backtracking.buscar(self)
            print('Desempilhou: {}'.format(self.fronteira.desempilhar().nome))
Esempio n. 3
0
class Backtracking:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        self.fronteira = Pilha(20)
        self.fronteira.empilhar(inicio)
        self.achou = False

    def buscar(self):
        topo = self.fronteira.getTopo()
        print('Topo: {}'.format(topo.nome))

        if topo == self.objetivo:
            self.achou = True
        else:
            '''For para percorrer todos os vertices do topo'''

            for a in topo.adjacentes:
                if self.achou == False:
                    print('Estado a ser visitado: {}'.format(a.Letras.nome))
                    if a.Letras.visitado == False:
                        a.Letras.visitado = True
                        self.fronteira.empilhar(a.Letras)
                        Backtracking.buscar(self)

        print('Desempilhou: {}'.format(self.fronteira.desempilhar().nome))
class Busca_Em_Profundidade_Visitados:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        #fronteira armazena pilha de cidades que serão visitadas
        self.fronteira = Pilha(1000)
        self.fronteira.empilhar(inicio)
        self.achou = False
        
    def buscar(self):
        topo = self.fronteira.getTopo()
        print("Topo: {}".format(topo.nome))
        
        if topo == self.objetivo:
            print("Objetivo {}" .format(self.objetivo.nome), "foi alcançado apartir de {}" .format(self.inicio.nome))
            self.achou = True
        else:
            for adjacente in topo.adjacentes:
                if self.achou == False:
                    print("Verificando se ja visitado: {}".format(adjacente.cidade.nome))
                    if adjacente.cidade.visitado == False:
                        adjacente.cidade.visitado = True
                        self.fronteira.empilhar(adjacente.cidade)
                        Busca_Em_Profundidade_Visitados.buscar(self)
Esempio n. 5
0
class Profundidade:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        self.fronteira = Pilha(20)
        self.fronteira.empilhar(inicio)
        self.achou = False
        
    def buscar(self):
        topo = self.fronteira.getTopo()
        print('Topo: {}'.format(topo.nome))
        
        if topo == self.objetivo:
            self.achou = True
            return print('A cidade {}'.format(topo.nome)+' foi encontrada!')
            
        else:
            for a in topo.adjacentes:
                if self.achou == False:
                    print('Verificando se já visitado: {}'.format(a.cidade.nome))
                    if a.cidade.visitado == False:
                        a.cidade.visitado = True
                        self.fronteira.empilhar(a.cidade)
                        Profundidade.buscar(self)
        print('Desempilhou: {}'.format(self.fronteira.desempilhar().nome))
class Profundidade:
    def __init__(self, inicio, objetivo):
        self.inicio = inicio
        self.inicio.visitado = True
        self.objetivo = objetivo
        self.fronteira = Pilha(20)
        self.fronteira.empilhar(inicio)
        self.achou = False

    def buscar(self):
        topo = self.fronteira.getTopo()
        print('Topo: {}'.format(topo.nome))

        if (topo == self.objetivo):
            self.achou = True
        else:
            for a in topo.adjacentes:
                if self.achou == False:
                    print('verificando se ja visitado: {}'.format(
                        a.cidade.nome))
                    if (a.cidade.visitado == False):
                        a.cidade.visitado = True
                        self.fronteira.empilhar(a.cidade)
                        Profundidade.buscar(self)
        print('desempilhou:{}'.format(self.fronteira.desempilhar().nome))
Esempio n. 7
0
 def main():
     pilha = Pilha()
     pilha.empilhar('A')
     pilha.empilhar('B')
     pilha.empilhar('C')
     pilha.empilhar('D')
     while (not pilha.estaVazia()):
         print('Elemento da PILHA: ' + pilha.desempilhar())
     print('---------------------------------------')
     fila = Fila()
     fila.inserir('A')
     fila.inserir('B')
     fila.inserir('C')
     fila.inserir('D')
     while (not fila.estaVazia()):
         print('Elemento da FILA: ' + fila.remover())
from Mapa import Mapa
from Pilha import Pilha
mapa = Mapa()
'''mapa.getAdjascentesCidade(mapa.mafra)'''

pilha = Pilha(5)
print("----")
print(pilha.topo)
pilha.empilhar(mapa.curitiba)
pilha.empilhar(mapa.araucaria)
pilha.empilhar(mapa.irati)
pilha.getTopo().nome
Esempio n. 9
0
from Pilha import Pilha

pilha = Pilha()
pilha.empilhar("A")
pilha.empilhar("B")
pilha.empilhar("C")
pilha.empilhar("D")
pilha.empilhar("E")
print(pilha)
print(pilha.espiar())
from Pilha import Pilha

pilha = Pilha()

pilha.imprimir()

pilha.adicionar("Computador")
pilha.imprimir()

pilha.adicionar("Notebook")
pilha.imprimir()

pilha.empilhar("Tablet")

pilha.empilhar("Smartphone")

pilha.imprimir()

print("---- Removendo ----")

pilha.remover()
pilha.adicionar("Relógio")
pilha.imprimir()

pilha.remover()
pilha.remover()
pilha.remover()
pilha.remover()