Buscar

EstruturasDeDados__Exercicio_Ponteiros_02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UEM – Universidade Estadual de Maringá 
Departamento de Informática 
Professor Yandre Maldonado e Gomes da Costa 
yandre@din.uem.br 
 
Solução da lista de exercícios - Ponteiros 
 
Considere a seguinte declaração de estrutura: 
 
struct Celula 
 { 
 int N; 
 Celula * Prox; 
 }; 
 
Celula* Q, R, S; 
Celula T; 
int G; 
 
 
Assuma que a estrutura encontra-se no seguinte estado: 
 
 
 
 
 
 
Figura 1 
 
1) Atribuições: 
 
a) Q=Q->Prox; 
 
 
 
 
 
 
 
b) *Q=*Q->Prox; 
 
 
 
 
 
 
 
 
 
 
 
1 2 3 4 5 6 
Q S R 
T 
1 3 3 4 5 6 
Q S R 
T 
1 2 3 4 5 6 
Q S R 
T 
UEM – Universidade Estadual de Maringá 
Departamento de Informática 
Professor Yandre Maldonado e Gomes da Costa 
yandre@din.uem.br 
 
c) Q->Prox=Q->Prox->Prox; 
 
 
 
 
 
 
 
d) Q=R->Prox; 
 
 
 
 
 
 
 
e) S->Prox=Q->Prox; Q->Prox=S; 
 
 
 
 
 
 
 
 
f) S->Prox=S; T=*Q; *Q=*S; *S=T; 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1 2 3 4 5 6 
Q S R 
T 
1 2 3 4 5 6 
Q 
S R 
T 
1 2 3 4 5 6 
Q S R 
T 
1 2 3 4 5 6 
Q S R 
T 
1 2 3 4 5 2 
Q S R 
T 
1 5 3 4 5 2 
Q S R 
T 
UEM – Universidade Estadual de Maringá 
Departamento de Informática 
Professor Yandre Maldonado e Gomes da Costa 
yandre@din.uem.br 
 
 
 
 
 
 
 
 
 
 
 
g) Q->Prox=T; 
 
Impossível executar, pois os tipos são incompatíveis. 
 
 
2) Assuma as mesmas declarações e condições iniciais descritas na figura 1. Descreva, 
quando possível, as seqüências de comandos que convertam a situação inicial para 
cada uma das situações descritas nos diagramas apresentados a seguir. Quando 
julgar a conversão impossível, justifique. 
 
a) 
 
 
 
 
 
Q=Q->Prox; 
 
b) 
 
 
 
 
 
 
R->Prox=S; 
R=Q->Prox; 
Q->Prox=R->Prox; 
R->Prox=Q; 
 
ou 
 
R->Prox=S; 
S=R; 
R=Q->Prox; 
Q->Prox=S; 
1 5 3 4 2 2 
Q S R 
 
1 2 3 4 5 6 
Q S R 
T 
1 2 3 4 5 6 
Q S R 
T 
UEM – Universidade Estadual de Maringá 
Departamento de Informática 
Professor Yandre Maldonado e Gomes da Costa 
yandre@din.uem.br 
 
R->Prox=Q; 
S=S->Prox; 
 
c) 
 
 
 
 
 
 
 
Q->Prox->Prox=S; 
S->Prox=R; 
 
d) 
 
 
 
 
 
 
G=T.N; 
T.N=S->N; 
S->N=G; 
S->Prox=Q->Prox; 
Q->Prox=S; 
 
e) 
 
 
 
 
 
 
Impossível, pois não há como recuperar o endereço do nodo 1 para fazer com que Q 
aponte para ele, já que o mesmo está perdido (não há referência capaz de alcançá-lo). 
 
 
 
 
 
 
 
 
 
 
1 2 3 4 5 6 
Q S R 
T 
1 2 3 4 6 5 
Q S R 
T 
1 2 3 4 5 6 
Q S R 
T 
UEM – Universidade Estadual de Maringá 
Departamento de Informática 
Professor Yandre Maldonado e Gomes da Costa 
yandre@din.uem.br 
 
f) 
 
 
 
 
 
 
G=Q->N; 
Q->N=S->N; 
S->N=G; 
S->Prox=Q->Prox; 
Q->Prox=S; 
S=Q; 
Q=S->Prox->Prox; 
 
ou 
 
G=Q->N; 
Q->N=S->N; 
S->N=R->N; 
R->N=Q->Prox->N; 
Q->Prox->N=G; 
S=Q; 
Q=R; 
R=Q->Prox; 
 
1 5 2 3 4 6 
S R Q

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes