Percorrendo e Exibindo uma Lista Ligada
Após aprender como criar e conectar nós, é necessário verificar se essa lista funciona corretamente!
Para isso, será criada uma função simples que exibirá toda a lista.
A função receberá um ponteiro para a área de memória onde o nó cabeça (primeiro) da lista está armazenado.
void printList(struct Node* head) {}
Em seguida, será criado um nó temporário current, com o qual será realizado o percurso por toda a lista. O conteúdo do nó current será igual ao conteúdo do nó atual da lista.
struct Node* current = head;
Para percorrer a lista, utiliza-se o laço while(){} com a condição necessária, ou seja, até que seja encontrado um nó cujo campo next seja NULL.
O nó temp (temporário) atua como um nó buffer. Ele é utilizado para armazenar temporariamente (e excluir) o conteúdo do nó atual. Se o nó atual for limpo imediatamente, a conexão com o próximo nó será perdida, o que significa que o acesso à lista será perdido.
while (current != NULL) { }
printf("\n");
Dentro do laço, será exibido o conteúdo do campo data do nó atual e o campo next será alterado para avançar para o próximo nó.
printf("%d ", current->data);
current = current->next;
Assim que um nó for encontrado cujo campo next seja igual a NULL, o loop irá parar de exibir o conteúdo dos nós e a função será encerrada.
Swipe to start coding
Implemente uma lista simplesmente encadeada simples com alocação dinâmica de memória. A tarefa é completar as funções printList e freeList.
-
Implemente uma função
printListcom um único parâmetrostruct Node* head.- Dentro de
printList, declare uma variávelcurrente inicialize-a comhead. - Utilize um laço
whilepara iterar enquantocurrentnão forNULL. - Em cada iteração, exiba o campo
datadecurrente movacurrentpara o próximo nó. - Após o laço, exiba um caractere de nova linha para separar a saída.
- Dentro de
-
Dentro de
freeList, declare uma variávelcurrente inicialize-a comhead.- Utilize um laço
whilepara iterar enquantocurrentnão forNULL. - Dentro do laço, armazene
currentem uma variável temporáriatemp. - Mova
currentpara o próximo nó. - Libere a memória alocada para
temp.
- Utilize um laço
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 4.35
Percorrendo e Exibindo uma Lista Ligada
Deslize para mostrar o menu
Após aprender como criar e conectar nós, é necessário verificar se essa lista funciona corretamente!
Para isso, será criada uma função simples que exibirá toda a lista.
A função receberá um ponteiro para a área de memória onde o nó cabeça (primeiro) da lista está armazenado.
void printList(struct Node* head) {}
Em seguida, será criado um nó temporário current, com o qual será realizado o percurso por toda a lista. O conteúdo do nó current será igual ao conteúdo do nó atual da lista.
struct Node* current = head;
Para percorrer a lista, utiliza-se o laço while(){} com a condição necessária, ou seja, até que seja encontrado um nó cujo campo next seja NULL.
O nó temp (temporário) atua como um nó buffer. Ele é utilizado para armazenar temporariamente (e excluir) o conteúdo do nó atual. Se o nó atual for limpo imediatamente, a conexão com o próximo nó será perdida, o que significa que o acesso à lista será perdido.
while (current != NULL) { }
printf("\n");
Dentro do laço, será exibido o conteúdo do campo data do nó atual e o campo next será alterado para avançar para o próximo nó.
printf("%d ", current->data);
current = current->next;
Assim que um nó for encontrado cujo campo next seja igual a NULL, o loop irá parar de exibir o conteúdo dos nós e a função será encerrada.
Swipe to start coding
Implemente uma lista simplesmente encadeada simples com alocação dinâmica de memória. A tarefa é completar as funções printList e freeList.
-
Implemente uma função
printListcom um único parâmetrostruct Node* head.- Dentro de
printList, declare uma variávelcurrente inicialize-a comhead. - Utilize um laço
whilepara iterar enquantocurrentnão forNULL. - Em cada iteração, exiba o campo
datadecurrente movacurrentpara o próximo nó. - Após o laço, exiba um caractere de nova linha para separar a saída.
- Dentro de
-
Dentro de
freeList, declare uma variávelcurrente inicialize-a comhead.- Utilize um laço
whilepara iterar enquantocurrentnão forNULL. - Dentro do laço, armazene
currentem uma variável temporáriatemp. - Mova
currentpara o próximo nó. - Libere a memória alocada para
temp.
- Utilize um laço
Solução
Obrigado pelo seu feedback!
single