C ++ - Algoritimo
UNIBAN
Koalas – Tech
Jarros
viadinho
Turma: AS32C.3 Nomes: RA:
São Paulo
Outubro de 2007
UNIVERSIDADE BANDEIRANTES DE SÃO PAULO
UNIBAN
Koalas – Tech Analise de Sistemas
Jarros
Trabalho Semestral
Disciplina: Organização e Estrutura Professor: Mauricio
São Paulo
Outubro de 2007
Definição de Busca em Amplitude
Na ciência da computação, busca em amplitude (busca em largura primeiro ou busca em largura, também usada a sigla em inglês BFS) é um algoritmo de procura de árvore usado para realizar uma busca ou travessia numa árvore, estrutura de árvore ou grafo. Intuitivamente, você começa pelo nó raiz e explora todos os nós vizinhos. Então, para cada um desses nós mais próximos, exploramos os seus nós vizinhos inexplorados e assim por diante, até que ele encontre o alvo da busca.
Ordem dos vértices explorados na busca em largura
Solução do Problema dos Jarros
#include
#include
struct estado
{
struct estado *pai; int j1,j2; int op; struct estado *prox;
};
//======== aplicavel =========================================================== int aplicavel (int j1, int j2, int op)
{
int ret;
ret=0;
switch (op) { case 1: { if (j10) ret = 1; break; } case 5: { if (j1>0 && j20 && *j2prox = ei; pai = ei; int achou = 0;
while(!achou){ if(pai == ef){ achou = 1; }else{ for(int regra=0; regra j1,ei ->j2, passos[regra])){ aplica(ei-> j1,ei ->j2, passos[regra]); pai -> op = regra; semantica(regra);