Baixe o app para aproveitar ainda mais
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
Compartilhar