Ir para conteúdo
Fórum Script Brasil
  • 0

programa só imprime o valor do primeiro nó(listas)


asantos38

Pergunta

Bom dia a todos.

Quando executo o código abaixo só imprime o valor armazenado no primeiro nó.

A função insere o nó no início da lista.

Estou usando Xcode em um macbook Air.

Alguém sabe qual o bug?

#include <stdio.h>
#include <stdlib.h>

// definição do tipo Lista.
struct Lista{
    int valor;
    
    struct Lista * proximo;
};

// função insere_iniciio().
struct Lista* insere_inicio(struct Lista* n, int valor){
    // declaração de variáveis.
    struct Lista* novo;
    
    if (n == NULL) {        // se a lista estiver vazia.
        n = (struct Lista*)malloc(sizeof(struct Lista));
        
        n->valor = valor;
        
        n->proximo = NULL;  // por ser o primeiro nó não deve apontar.
        
        return n;
        
    }else{                  // se a lista não estiver vazia.
        novo = (struct Lista*)malloc(sizeof(struct Lista));
        
        novo->valor = valor;
        
        novo->proximo = n;
        
        return novo;
    }
}

int main(){
    // declaração de variáveis.
    int valor;
    struct Lista* inicio;
    struct Lista* novo;
    struct Lista* temp;
    
    // aloca memória para a lista.
    inicio = (struct Lista*)malloc(sizeof(struct Lista));
    
    // inicializa a estrutura.
    inicio->valor = 20;
    inicio->proximo = NULL;
    
    // limpa o console.
    system("clear");
    
    printf("Informe o valor para armazenar na lista: ");
    
    scanf("%d", &valor);
    
    // chamada para a função insere_inicio().
    novo = insere_inicio(inicio, valor);
    
    temp = novo;
    
    while (temp->proximo != NULL) {
        printf("Valor armazenado: %d\n", temp->valor);
        
        temp = temp->proximo;
    }
    
    return 0;
}

 

Editado por asantos38
acrescentar texto
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...