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
Can you show me the complete function code?
How does this function handle an empty list?
Can you explain what happens if the list has only one node?
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