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: 9216 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:----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
#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 |
|
Python - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






