QUESTÃO 5
Você faz parte de uma equipe de programadores contratados para implementar uma solução de grafo ponderado representado por uma lista de adjacências.
Primeiro foi criado a lista de adjacências, que aponta para o nó de destino, o peso associado a aresta que leva ao nó de destino e o próximo elemento da lista de adjacências.
typedef struct adjacencia {
int vertice;
int peso;
struct adjacencia *prox;
}ADJACENCIA;
Os dados são armazenados nos vértices ou nós. Esta estrutura possui apenas a cabeça da lista de adjacências.
typedef struct vertice {
ADJACENCIA *cabeca;
}VERTICE;
A estrutura do grafo armazena o número total de vértices e arestas do grafo caso você queira utilizar em algum momento do seu código. A vantagem em saber desta informação consiste em evitar de percorrer toda a estrutura. A última linha de definição da estrutura contém o arranjo de vertices da estrutura.
typedef struct grafo {
int vertices;
int arestas;
VERTICE *adj;
}GRAFO;
Após a definição das estruturas (lista de adjacência, vértice e grafo), os desenvolvedores implementaram a função de criar o grafo.
GRAFO *criaGrafo (int v) {
int i;
GRAFO *g = (GRAFO *)malloc(sizeof(GRAFO));
g->vertices = v;
g->arestas = 0;
g->adj = (VERTICE *)malloc(v*sizeof(VERTICE));
for (i=0; i adj[i].cabeca = NULL;
}
return(g);
}
Além de implementar o código, assinale a alternativa correta a respeito da função malloc a seguir:
GRAFO *g = (GRAFO *)malloc(sizeof(GRAFO));
Alternativas
Alternativa 1:
A função malloc retorna o tamanho da estrutura do grafo.
Alternativa 2:
A função malloc reservará um espaço na memória relativo a 8 bits.
Alternativa 3:
A função malloc reservará um espaço na memória relativo a 16 bytes.
Alternativa 4:
A função malloc reservará um espaço na memória do tamanho de um inteiro.
Alternativa 5:
A função malloc reservará em memória um espaço relativo a estrutura do grafo.
Soluções para a tarefa
Resposta:
Alternativa 5:
A função malloc reservará em memória um espaço relativo a estrutura do grafo.
Explicação:
A função malloc (o nome é uma abreviatura de memory allocation) aloca espaço para um bloco de bytes consecutivos na memória RAM (= random access memory) do computador e devolve o endereço desse bloco. O número de bytes é especificado no argumento da função.
url:(https://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html#:~:text=A%20fun%C3%A7%C3%A3o%20malloc%20(o%20nome,especificado%20no%20argumento%20da%20fun%C3%A7%C3%A3o.)
Explicando de uma outra forma, basicamente a função malloc guarda um espaço na memoria para uma quantidade de bytes definido ou manualmente ou automaticamente com a função sizeof
Fonte: https://brainly.com.br/tarefa/52595500