Ir para conteúdo
Fórum Script Brasil

carollima3

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre carollima3

carollima3's Achievements

0

Reputação

  1. O único código que não coloquei é a main, os demais códigos são outros métodos sem relação alguma com esse método: CLASSE PRINCIPAL: #include <stdio.h> #include <stdlib.h> #include "ListaAdj.h" int main(){ TipoGrafo grafo; int nv = 10; printf("\nInicializando grafo..."); bool iniciou = inicializaGrafo(&grafo, nv); if (iniciou){ printf("\nInicializado com sucesso!\n"); }else{ printf("\nNao foi possivel inicializar.\n"); } printf("\nInserindo uma aresta..."); insereAresta(1,2,5,&grafo); printf("\nAresta inserida com sucesso!\n"); printf("\nVerificando se existe aresta entre 1 e 2..."); bool existe = existeAresta(1,2,&grafo); if(existe){ printf("\nExiste!\n"); } else{ printf("\nNao existe.\n"); } return 0; } ..... (outros métodos) bool existeAresta(int v1, int v2, TipoGrafo *grafo){ TipoApontador *p; p = (TipoApontador*)malloc(sizeof(TipoApontador)); *p = grafo->listaAdj[v1]; while(p){ if (p->vdest == v2){ return true; } p = p->prox; } free(p); return false; } ************************************ HEADER: #include <stdbool.h> /* variaveis bool assumem valores "true" ou "false" */ typedef int TipoPeso; /* tipo estruturado taresta: vertice destino, peso, ponteiro p/ prox. aresta */ typedef struct taresta { int vdest; TipoPeso peso; struct taresta * prox; } TipoAresta; typedef TipoAresta* TipoApontador; /* tipo estruturado grafo: vetor de listas de adjacencia (cada posicao contem o ponteiro para o inicio da lista de adjacencia do vertice) numero de vertices */ typedef struct { TipoApontador *listaAdj; int numVertices; int numArestas; } TipoGrafo; ......(outros métodos) /* bool existeAresta(int v1, int v2, TipoGrafo *grafo): Retorna true se existe a aresta (v1, v2) no grafo e false caso contrário */ bool existeAresta(int v1, int v2, TipoGrafo *grafo);
  2. Olá! Estou fazendo um trabalho da faculdade e tenho que implementar grafos por lista de adjacencia. Tenho um método que verifica se existe uma aresta entre dois vertices, porém está dando erro de compilacao, segue o código abaixo: Structs: typedef struct taresta { int vdest; TipoPeso peso; struct taresta * prox; } TipoAresta; typedef TipoAresta* TipoApontador; typedef struct { TipoApontador *listaAdj; int numVertices; int numArestas; } TipoGrafo; Método: bool existeAresta(int v1, int v2, TipoGrafo *grafo){ TipoApontador *p; p = (TipoApontador*)malloc(sizeof(TipoApontador)); *p = grafo->listaAdj[v1]; //começa a percorrer do inicio da lista de adjacencia de v1 while(p){ if (p->vdest == v2){ //linha que esta dando erro return true; } p = p->prox; //linha que esta dando erro } free(p); return false; } Os erros de compilação que ocorrem são os mesmos: Request for member 'vdest' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?) Request for member 'prox' in '*p', which is of pointer type 'TipoApontador' {aka taresta} (maybe you meant to use '->' ?) Espero que alguém de ajude a enxergar o erro. Obrigada desde já!!!
  3. Olá! Estou fazendo um trabalho da faculdade e tenho que implementar grafos por lista de adjacencia. Tenho um método que verifica se existe uma aresta entre dois vertices, porém está dando erro de compilacao, segue o código abaixo: bool existeAresta(int v1, int v2, TipoGrafo *grafo){ TipoApontador *p; p = (TipoApontador*)malloc(sizeof(TipoApontador)); *p = grafo->listaAdj[v1]; while(p){ if (p->vdest == v2){ //linha que esta dando erro return true; } p = p->prox; } free(p); return false; }
×
×
  • Criar Novo...