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))
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))
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)
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))
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
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()