grafos

851 palavras 4 páginas
typedef struct { int **matrizAdj; int qtdVertices; int qtdArcos;
} Grafo;

/* Definicao do tipo para celula/no/nodo/elemento da fila */ typedef struct cel { int conteudo; struct cel *prox;
} Celula;

/* Definicao do tipo para fila com dois ponteiros (inicio e fim) */ typedef struct estruturaFila { Celula *inicio; Celula *fim;
} Fila;

/*procedimento que recebe o endereco de uma fila e inicializa inicio (cabeca) e fim (cauda)*/ void inicializarFila(Fila *fila) { fila->inicio = NULL; fila->fim = NULL;
}

/* procedimento que recebe o endereco de uma fila e um nome insere o nome na referencia da fila passada como parametro */ void incluirFila(int no, Fila *fila) { Celula *nova; nova = (Celula *) malloc (sizeof (Celula)); //aloca dinamicamente nova->conteudo = no; nova->prox = NULL;

//verifica se fila vazia if (fila->inicio == NULL) { //ou if (!fila->inicio) {} //tanto inicio (cabeca) e fim (cauda) da fila apontam para a nova celula fila->inicio = nova; fila->fim = nova; } else { //fila nao vazia fila->fim->prox = nova; fila->fim = nova; }
}
/*funcao que recebe o endereco de uma fila e remove o elemento mais antigo, ou seja no inicio, retornando o elemento do inicio */ int excluirFila(Fila *fila) { Celula *lixo; int no;

if (fila->inicio) { no = fila->inicio->conteudo; //verifica se hah mais de um elemento na fila if (fila->inicio->prox != NULL) { //ou if (fila->inicio->prox) {} lixo = fila->inicio; fila->inicio = fila->inicio->prox; free(lixo); } else { //somente um elemento fila->inicio = NULL; fila->fim = NULL; } return no; } else return -1;
}

void percursoAmplitude(Grafo *g, int nodoOrigem) { int no, i; Fila f; int visitados[g->qtdVertices];

if (nodoOrigem < 0 || nodoOrigem >= g->qtdVertices) { printf("\nNodo de partida invalido!!\n"); return; } inicializarFila(&f); for (no

Relacionados

  • Grafos
    272 palavras | 2 páginas
  • Grafos
    4071 palavras | 17 páginas
  • grafos
    819 palavras | 4 páginas
  • Grafos
    626 palavras | 3 páginas
  • Grafos
    2074 palavras | 9 páginas
  • Grafos
    2681 palavras | 11 páginas
  • Grafos
    534 palavras | 3 páginas
  • Grafos
    2345 palavras | 10 páginas
  • Grafos
    989 palavras | 4 páginas
  • Grafos
    4295 palavras | 18 páginas