questôes av1
Abaixo, vemos a declaração de uma estrutura: struct pasta{ int codigo; char nome[40]; float peso,altura; struct pasta *proximo,*anterior; };
Note que esta declaração define apenas um tipo de dado. Uma variável deste tipo tem que ser declarada ainda, por exemplo: struct pasta *inicio.*ultimo;
Ou, se preferir tem uma forma mais compacta para declaração das variáveis aonde podemos declará-las no momento em que declaramos o tipo, veja struct pasta{ int codigo; char nome[40]; float peso,altura; struct pasta *proximo,*anterior; }*inicio,*ultimo;
E, ainda podemos declarar um estrutura assim typedef struct pasta{ int codigo; char nome[40]; float peso,altura; struct pasta *proximo,*anterior; }reg;
Agora a palavra reg logo no final da declaração do registro significa que definimos um tipo de registro chamado reg a qual poderemos usá-lo na declaração de variáveis deste tipo, veja o exemplo: reg *inicio,*ultimo; é a mesma coisa que struct pasta *inicio,*ultimo;
Bom, o exercício é: Agora que você conhece todas estas formas trabalhar com registros qual você achou melhor. Justifique.
2) Com base nas declarações do exercício 1 montamos a seguinte estrutura abaixo:
Código:1
codigo:2
codigo:3
codigo:4
Nome:José
Nome:Pedro
Nome:Ana
Nome:João
Peso:74
Peso:60
Peso:60
Peso:80
Altura:1.80
Altura:1.60
Altura:1.50
Altura:1.50 proximo proximo
proximo
próximo anterior anterior
anterior
anterior
Responda:
a) Que tipo de estrutura de dados é esta? (uma observação: os arcos (flechas ou setas) que representam os ponteiros também podem ser chamados de elos e os registros de nós ou nodos).
b) Dado o extrato de código qual o sentido lógico dele? reg *p;