grafos
#include
#include
#define tam 10
struct no
{
int vertice; int peso; struct no *prox;
};
typedef struct no NO;
// No grafo void Ins_Fim (NO **Grafo, int vert, int pe)
{
NO *p, *q; p = (NO *)calloc (1, sizeof(NO)); p->vertice = vert; p->peso = pe; p->prox = NULL; if (*Grafo==NULL) *Grafo = p; else { q = *Grafo; while (q->prox != NULL) q = q->prox; q->prox = p; }
}
//o grafo void imprime (NO *Grafo)
{
NO *p; p = Grafo; while (p != NULL) { printf ("vertice: %d, peso: %d -> ", p->vertice, p->peso); p = p->prox; } printf ("NULL \n");
}
struct fila
{
int info; struct fila *prox;
};
typedef struct fila Fila;
void Cria_Fila(Fila **Inicio, Fila **Fim)
{
*Inicio = NULL; *Fim = NULL;
}
// fila void Ins_Fim_Fila (Fila **Inicio, Fila **Fim, int v)
{
Fila *p = (Fila *)calloc(1, sizeof(Fila)); p->info = v; p->prox = NULL; if (*Inicio==NULL) *Inicio=p; else (*Fim)->prox=p; *Fim = p;
}
// fila int Rem_Inicio_Fila (Fila **Inicio, Fila **Fim)
{
Fila *p; int v; if (*Inicio!=NULL) { p = *Inicio; *Inicio = p->prox; if (p == *Fim) *Fim = NULL; v = p->info; free(p); return v; } else return -1;
}
void Busca_Largura(NO *Grafo)
{
Fila *Inicio, *Fim; NO *q, *n1; int n, m; Cria_Fila(&Inicio, &Fim); int visitado[tam], distancia = 0; for(int i=0; ivertice; if (visitado[m] == 0) { printf(" %d ", m); Ins_Fim_Fila(&Inicio, &Fim, m); visitado[m] = 1; } n1 = n1->prox; // andar no grafo } }
}
struct pilha
{
int info; struct pilha *prox;
};
typedef struct pilha Pilha;
//criar pilha void Cria_Pilha(Pilha