Ir ao conteúdo
  • Cadastre-se

victortaichou

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Tenho a seguinte entrada: 5 4 2 3 5 1 O primeiro nº, no caso 5, é o nº de vértices do grafo; o 2º, no caso 4, é o nº de arestas. Em cada linha representa um vértice, e os números em cada linha representam as adjacências que aquele vértice tem. Na 1ª linha, que representa o vértice 1, está informado que o vértice 1 é adjacente ao vértice 2 e que ele (o vértice 1) também é adjacente ao vértice 3. As linhas 3 e 5 estão em branco para indicar que esses vértices não tem adjacência com ninguém. Meu código até agora está assim: typedef struct _NO { int chave; struct _NO* prox; } no; int TAM, aresta, vertice, key; no* vizinhosDeEntrada; no* vizinhosDeSaida; no* init(no* lista); void insere(no* lista, int vertice, int chave); void libera(no* lista); int main(void) { scanf("%d %d", &TAM, &aresta); int i; // Inicializa as linhas de adjacências vizinhosDeEntrada = init(vizinhosDeEntrada); vizinhosDeSaida = init(vizinhosDeSaida); if (vizinhosDeEntrada == NULL) { printf("Erro na criacao da lista da entrada!!!\n"); exit(EXIT_FAILURE); } else if (vizinhosDeSaida == NULL) { printf("Erro na criacao da lista de saida!!!\n"); exit(EXIT_FAILURE); } //Insere as adjacências. MEU PROBLEMA ESTÁ AQUI for(i = 1; i < aresta + 1; i ++) { scanf("%d ", &key); insere(vizinhosDeEntrada,i,key); insere(vizinhosDeSaida,key,i); } return 0; } no* init(no* lista) { int i; lista = (no*) malloc(sizeof(no)*(TAM+1)); for (i = 1; i < TAM + 1; i ++){ lista.chave = 0; lista.prox = NULL; } return lista; } void insere(no* lista,int vertice, int chave) { no* aux; aux = (no*) malloc(sizeof(no)); aux->prox= NULL; aux->chave = chave; no* fim; if(lista[vertice].prox == NULL) { lista[vertice].prox = aux; fim->prox = aux; } else { no* temp; temp = lista[vertice].prox; while(temp->prox != NULL) { temp = temp->prox; } temp->prox = aux; } lista[vertice].chave++; } void libera(no* lista) { int i; for(i = 0; i <= TAM; i ++) { no* atual = lista.prox; while(atual != NULL) { no* prox = atual->prox; free(atual); atual = prox; } } free(lista); } Alguém pode me ajudar a preencher essa lista de adjacências de maneira correta? Obrigado, espero que a dúvida tenha ficado clara
  2. Por favor me ajudem a criar uma função que leia do teclado os elos de uma matriz quadrada(e o tamanho da matriz) e outra função que os imprima na tela, usando alocação de memória para cada valor dos elos(valor de cada posição). Obrigado

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...