Os dados relativos a um grupo de atletas foram organizados em uma lista linear encadeada. O campo de informação de cada nodo desta lista apresenta o nome e a altura de um atleta , conforme exibido na implementação a seguir:
struct no
{
char nome [30]
float altura;
struct no *prox;
}
struct no *atletas;
Implemente as funções a seguir:
O campo de informação de cada nó desta lista apresenta o nome e a altura de um atleta, além de um ponteiro para o próximo nó da lista. A implementação apresentada é uma estrutura de dados em linguagem C que representa uma lista linear encadeada de atletas. Para resolver as questões propostas, segue abaixo as funções em C: 1. Função para inserir atletas no início da lista: ```c void insereAtleta(struct no **atletas) { struct no *novoAtleta = (struct no*) malloc(sizeof(struct no)); printf("Digite o nome do atleta: "); scanf("%s", novoAtleta->nome); printf("Digite a altura do atleta: "); scanf("%f", &novoAtleta->altura); novoAtleta->prox = *atletas; *atletas = novoAtleta; } ``` 2. Função para retornar o número total de atletas da lista: ```c int totalAtletas(struct no *atletas) { int total = 0; while (atletas != NULL) { total++; atletas = atletas->prox; } return total; } ``` 3. Função para imprimir o nome de todos os atletas que apresentam altura superior a 1,90m: ```c void imprimeAtletasAltura(struct no *atletas) { while (atletas != NULL) { if (atletas->altura > 1.9) { printf("%s\n", atletas->nome); } atletas = atletas->prox; } } ``` 4. Função para dividir a lista em duas, uma com os dados dos atletas com altura inferior a 1,70m e a outra com os atletas com altura igual ou superior a este valor: ```c void divideLista(struct no *atletas, struct no **atletasBaixos, struct no **atletasAltos) { while (atletas != NULL) { if (atletas->altura < 1.7) { struct no *novoAtleta = (struct no*) malloc(sizeof(struct no)); strcpy(novoAtleta->nome, atletas->nome); novoAtleta->altura = atletas->altura; novoAtleta->prox = *atletasBaixos; *atletasBaixos = novoAtleta; } else { struct no *novoAtleta = (struct no*) malloc(sizeof(struct no)); strcpy(novoAtleta->nome, atletas->nome); novoAtleta->altura = atletas->altura; novoAtleta->prox = *atletasAltos; *atletasAltos = novoAtleta; } atletas = atletas->prox; } } ```
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar