Staff developed this function:
tipo_lista * insere_meio(tipo_lista *aux, tipo_lista * valor, int pos){
int cont=1; //é a posição do primeiro elemento da lista encadeada
tipo_lista * p = aux;
tipo_lista * novo = (tipo_lista*)malloc(sizeof(tipo_lista));
while (cont != pos){ //testa se é igual a posição que ele quer inserir
p = p -> prox;
cont++;
}
novo -> info = valor;
novo -> prox = p -> prox;
p -> prox = novo;
return aux;
}
In% as_% I called:
p = insere_meio(p, cria_no(5), (2));
Prints:
void imprime_lista(tipo_lista* p)
{
while (p != NULL)
{
printf("%d ", p->info);
p = p -> prox;
}
printf("\n");
}
Create Node:
tipo_lista * cria_no (int valor)
{
tipo_lista * novo;
novo = (tipo_lista *)malloc(sizeof(tipo_lista));
novo -> info = valor;
novo -> prox = NULL;
return novo;
}
You entered correctly in position 2, it turns out that the impression of number 5 was memory garbage. Could someone help me solve this problem to print number 5 properly.
Thank you very much