Implementação grafos lista de adjacência em C


Analisando propostas
Descrição:
Gostaria que ambos os códigos fossem corrigidos para que compilassem e rodassem com sucesso

Código 1: Matriz de adjacência

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

#define V 5


void inicializar (int *g){

    int i,j;
    for (i=1; i<=V; i++)
        for(j=1;j<=V; j++)
            g[i][j]=0;
}
int inserir (int *g, int i, int j){
        g[i][j]=1;
        return 0;
}

void imprimir(int*g){
    for(int i=1; i<=V; i++){
        for(int j=1; j<=V; j++){
            printf("%d", g[i][j]);
        }
    }

}

int main()
{
    int g[V+1][V+1];
    inicializar(*g);
    inserir(*g, 2, 3);
    imprimir(*g);
    return 0;

}


____________________________________________


Código 2: Lista de adjacência

#include <stdlib.h>
#include <stddef.h>
#include <stdbool.h>
#include <stdio.h>

#define null ((void *) 0)
#define V 5

typedef struct aux{
    int v;
    struct aux * prox;
    struct aux * ant;
}No;


typedef struct s{
    int flag;
    No * inicio;
}Vertice;


void inicializar (Vertice *g){
  int i;
    for (i=1; i<=V; i++){
        g[i].inicio=null;
    }
}

bool arestaExiste(Vertice *g,int i, int j){
    No * p = g[i].inicio;
    while(p){
        if(p->v ==j) return true;
        p=p->prox;
    }
    return false;
}

void inserirAresta (Vertice *g, int j, int i){
    if (arestaExiste(g, j, i)) return;
    No * novo = (No *) malloc(sizeof(No));
    novo->v=j;
    novo->prox = g[i].inicio;
}

void imprimir (Vertice *g){
    int i;
      for (i=1; i<=V; i++){
            printf("%d", i);
        No * p = g[i].inicio;
        printf("%d",p->v);
      while(p){

          p=p->prox;

        }
    }

}


int main()
{

    Vertice * g = (Vertice *) malloc (sizeof(Vertice) * (V+1));

    inicializar(g);
    inserirAresta (g, 1, 50);
    inserirAresta (g, 2, 99);
    inserirAresta (g, 3, 40);
    inserirAresta (g, 4, 60);
    imprimir(g);
    system("pause");
}

Categoria: TI e Programação
Subcategoria: Programação
Qual é o alcance do projeto?: Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho?: Um projeto
Disponibilidade requerida: Conforme necessário
Funções necessárias: Desenvolvedor

HTML JavaScript PHP

Menos de USD 50

Orçamento

5

Propostas

5

Freelancers interessados

Publicado: há 2 anos

Prazo de Entrega: Não estabelecido

Crie seu próprio projeto

Você está procurando um freelancer para realizar um projeto parecido? Crie seu próprio projeto e você receberá ofertas dos melhores freelancers.


Freelancers que já se candidataram para este trabalho

Leonardo d. C.QUALIDADES PESSOAIS  Facilidade em adquirir novos conhecimentos.  Facilidade em adaptação.  Didática.  Relacionamento pessoal.  Dedicação.  Motivação.  Autodidatismo. Mais detalhes

Felipe D.Sou Engenheiro Eletricista formado pela UFRGS e possuo amplo conhecimento em desenvolvimento de hardware e software embarcado. Sou responsável pela inserção de mais de 10 produtos de hardware no mercado, possuo cerca ... Mais detalhes