Você está aqui: C ::: Estruturas de Dados ::: Lista Ligada Simples |
Como inserir nós no início de uma lista singularmente ligada em CQuantidade de visualizações: 9158 vezes |
Esta dica mostra como inserir nós no início de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:struct No{ int valor; struct No *proximo; }; Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no início quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código: #include <stdio.h> #include <stdlib.h> // estrutura Nó struct No{ int valor; struct No *proximo; }; // fim da estrutura Nó // função que permite exibir os valores de // todos os nós da lista void exibir(struct No *n){ if(n != NULL){ do{ printf("%d\n", n->valor); n = n->proximo; }while(n != NULL); } else printf("A lista esta vazia\n\n"); } // função que permite inserir nós no // início da lista. // veja que a função recebe o valor a ser // armazenado em cada nó e um ponteiro para o // início da lista. A função retorna um // ponteiro para o início da lista struct No *inserir_inicio(struct No *n, int v){ struct No *novo; // verifica se a lista está vazia if(n == NULL){ // reserva memória para o novo nó n = (struct No*)malloc(sizeof(struct No)); n->valor = v; // é o primeiro nó...não deve apontar para // lugar nenhum n->proximo = NULL; return n; } else{ // não está vazia....vamos inserir o nó no início // vamos criar um novo nó agora novo = (struct No*)malloc(sizeof(struct No)); // atribui o valor do nó novo->valor = v; // define o inicio da lista como campo proximo // do novo nó novo->proximo = n; return novo; } } int main(int argc, char *argv[]) { // declara a lista struct No *inicio = NULL; // vamos inserir quatro valores no início // da lista inicio = inserir_inicio(inicio, 45); inicio = inserir_inicio(inicio, 3); inicio = inserir_inicio(inicio, 98); inicio = inserir_inicio(inicio, 47); // vamos exibir o resultado exibir(inicio); system("pause"); return 0; } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
JavaScript - Como usar objetos Set em seus códigos JavaScript C++ - Como criar uma classe C++ completa, incluindo os arquivos de definição .h e implementação .cpp |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |