Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola Gente,
Quando eu tento inserir um nó no fim da lista ele aparentemente seleciona o ultimo valor e o aponta para o novo. Mas quando eu imprimo a lista o valor não aparece. A inserção no inicio funciona normal. Desde já agradeço a atenção!
typedef struct lista{
int info;
struct lista* prox;
}Lista;
int insere_ini(Lista* p, int val){
Lista* novo = (Lista*)malloc(sizeof(Lista));
novo->info = val;
novo->prox = p;
return novo;
} Lista* novo = (Lista*)malloc(sizeof(Lista));
Lista* aux = p;
Lista* ant = NULL;
while(aux->prox != NULL){
ant = aux;
aux = aux->prox;
}
printf("\nULTIMO ELEMENTO %d", ant->info);
novo->info = valor;
ant->prox = novo;
novo->prox = NULL;
//printf("\nANTERIOR %d", ant->info);
//printf("\nNOVO %d", novo->info);
return p;
}O programa não mostra o último valor inserido por que as linhas de código que imprimem esse valor estão comentadas. Retire as barras duplas das funções de impressão que o valor será mostrado.
#include <stdio.h>
#include <stdlib.h>
typedef struct lista{
Lista insere_inicio(Lista p, int val){
Lista insere_fim(Lista p, int valor){
int main() {