boolean adicionarAresta(int i, int j, int g[V][V]) {
	if (existeAresta(i-1,j-1,g))
		return FALSE;
		
	g[i-1][j-1] = 1;
	g[j-1][i-1] = 1;
	return TRUE;
}
Exemplo n.º 2
0
/*!
  void insereAresta(int v1, int v2, TipoPeso peso, TipoGrafo *grafo):
  Insere a aresta (v1, v2) com peso "peso" no grafo.
  Nao verifica se a aresta ja existia.
*/
void insereAresta(int v1, int v2, TipoPeso peso, TipoGrafo *grafo){
    if(existeAresta(v1, v2, grafo));
    TipoAresta* nova = (TipoAresta*)malloc(sizeof(TipoAresta));
    nova->vdest = v2;
    nova->peso = peso;
    nova->prox = grafo[v1].listaAdj;
    grafo[v1].listaAdj = nova;
}
boolean excluirAresta(int i, int j, int g[V][V]) {
	if (!existeAresta(i-1,j-1,g))
		return FALSE;
	
	g[i-1][j-1] = 0;
	g[j-1][i-1] = 0;
	return TRUE;
}
Exemplo n.º 4
0
bool retiraAresta( int origem, int destino )
{
	if ( existeAresta(origem, destino) )
	{
		grafo[origem][destino] = 0;
		return true;
	}
	return false;
}
Exemplo n.º 5
0
bool insereAresta( bool g[][], int origem, int destino )
{
	if ( !existeAresta(origem,destino) )
	{
		g[origem][destino] = 1;
		return true;
	}
	return false;
}
Exemplo n.º 6
0
int qtde_arestas()
{
	int i, j, total = 0;

	for ( i = 1; i <= V; i++ )
	{
		for ( j = 1; j <= V; j++)
			if ( existeAresta(i,j) ) total++;
	}
	return total;
}
boolean excluirAresta(int i, int j, VERTICE *g) {
	NO *ant;
	NO *p = existeAresta(i,j,g,&ant);
	
	if (!p)
		return FALSE;
	
	if (ant) ant->prox = p->prox;
	else g[i].inicio = p->prox;
	free(p);
	return TRUE;
}
boolean adicionarAresta(int i, int j, VERTICE *g) {
	NO *ant;
	NO *p = existeAresta(i,j,g,&ant);
	
	if (p)
		return FALSE;
	
	NO *novoNo = (NO *) malloc(sizeof(NO));
	novoNo->v = j;
	novoNo->prox = g[i].inicio;
	g[i].inicio = novoNo;
	return TRUE;
}