2. Código fonte (v1)
void insereFim ( no *LISTA ) {
no *novo = aloca();
novo -> proximo = NULL;
if (vazia(LISTA))
LISTA -> proximo = novo;
else {
no *aux = LISTA -> proximo;
while ( aux -> proximo != NULL ){
aux = aux -> proximo;
}
aux -> prox = novo;
}
tam++;
}
9. Inserindo no Fim da Lista
NULLa NULL
PRÓXIMO
LISTA (0XA)
• A lista contém um elemento
10. Inserindo no Fim da Lista
• Um novo nó será inserido
NULLx NULL
PRÓXIMO
NOVO (0X15)
11. Inserindo no Fim da Lista
AUX
a NULL
PRÓXIMO
NULL
no *aux = LISTA -> próximo;
LISTA (0XA)
AUXa NULL
PRÓXIMO
NULL
LISTA (0XA)
AUX
12. Inserindo no Fim da Lista
AUX
a NULL
PRÓXIMO
NULL
no *aux = LISTA -> próximo;
Quem é o próximo da lista?
É NULL!
LISTA (0XA)
a NULL
PRÓXIMO
NULL
LISTA (0XA) AUX
13. Inserindo no Fim da Lista
x NULL
PRÓXIMO
NULL
aux -> proximo = novo;
a NULL
PRÓXIMO
NULL
NOVO (0X15)
0X15
LISTA (0XA)
AUX
14. Inserindo no Fim da Lista
x NULL
PRÓXIMO
NULL
a 0X15
PRÓXIMO
NOVO (0X15)
0X15
LISTA (0XA)
AUX
aux -> proximo = novo;
15. Inserindo no Fim da Lista
NULLx NULL
PRÓXIMO
NOVO (0X15)
a 0X15
PRÓXIMO
AUX
NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
LISTA
0X150XA
17. Inserindo no Fim da Lista
• A lista tem mais de um elemento
NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
LISTA
0X150XA
18. Inserindo no Fim da Lista
• Um novo nó será inserido
NULLk NULL
PRÓXIMO
NOVO (0XB1)
19. Inserindo no Fim da Lista
AUX
no *aux = LISTA -> próximo
NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
LISTA
0X150XA
20. Inserindo no Fim da Lista
AUX NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
AUX
no *aux = LISTA -> próximo
21. Inserindo no Fim da Lista
AUX -> PROXIMO != NULL
0X15 != NULL
V
AUX NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
AUX
AUX = AUX -> PROXIMO
AUX = 0X15
22. Inserindo no Fim da Lista
AUX -> PROXIMO != NULL
NULL != NULL
F
AUX NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
AUX
Finaliza o while!
23. Inserindo no Fim da Lista
AUX -> PROXIMO = NOVO;
AUX NULLx NULL
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
AUX
NULLk NULL
PRÓXIMO
NOVO (0XB1)
0XB1
24. Inserindo no Fim da Lista
AUX -> PROXIMO = NOVO;
AUXx 0XB1
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
AUX
NULLk NULL
PRÓXIMO
NOVO (0XB1)
25. Inserindo no Fim da Lista
x 0XB1
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
NULLk NULL
PRÓXIMO
NOVO (0XB1)
x 0XB1
PRÓXIMO
a 0X15
PRÓXIMO
0X150XA
NULLk NULL
PRÓXIMO
LISTA
0XB1