-1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
typedef struct nodo Nodo;
struct nodo{
int valor;
Nodo *proximo;
};
void cria_lista(Nodo **pp_ini, Nodo **pp_fim) {
*pp_ini = NULL;
*pp_fim = NULL;
puts("Lista Criada!");
}
void destroi_lista(Nodo **pp_ini, Nodo **pp_fim) {
Nodo *nodo_aux;
nodo_aux = *pp_ini;
while (nodo_aux) {
*pp_ini = (*pp_ini)->proximo;
free(nodo_aux);
nodo_aux = (*pp_ini);
}
*pp_fim = NULL;
}
void imprime_lista_inicio(Nodo *p_ini) {
Nodo *p = p_ini;
if (p_ini == NULL) {
printf("Lista vazia.\n");
return;
}
while (p) {
printf("Valor do nodo = %d\n", p->valor);
p = p->proximo;
}
}
void insere_inicio(Nodo **pp_ini, Nodo **pp_fim, int valor) {
Nodo *nodo_aux;
nodo_aux = (Nodo*)malloc(sizeof(Nodo));
if (nodo_aux) {
nodo_aux->valor = valor;
nodo_aux->proximo = *pp_ini;
if (*pp_ini == NULL) {
*pp_fim = nodo_aux;
}
*pp_ini = nodo_aux;
}
}
void insere_fim(Nodo **pp_ini, Nodo **pp_fim, int valor) {
Nodo *nodo_aux;
nodo_aux = (Nodo*)malloc(sizeof(Nodo));
if (nodo_aux) {
nodo_aux->valor = valor;
nodo_aux->proximo = NULL;
Nodo *p_fim, *p_ini;
p_ini = *pp_ini;
p_fim = *pp_fim;
if (p_ini == NULL) {
p_ini = nodo_aux;
p_fim = nodo_aux;
}
else {
p_fim->proximo = nodo_aux;
p_fim = nodo_aux;
}
*pp_ini = p_ini;
*pp_fim = p_fim;
}
}
void remove_inicio(Nodo **pp_ini, Nodo **pp_fim){
Nodo *nodo_aux;
if(*pp_ini){
if(*pp_ini==*pp_fim){
destroi_lista(pp_fim, pp_fim);
}else{
nodo_aux = *pp_ini;
nodo_aux = nodo_aux->proximo;
*pp_ini = nodo_aux;
free(nodo_aux);
}
}else{
printf("Nodo Inexistente");
}
}
//void remove_fim(Nodo **pp_ini, Nodo **pp_fim){
// Nodo *nodo_aux, *x;
// if(*pp_fim){
// if(*pp_ini == *pp_fim){
// destroi_lista(pp_fim, pp_fim);
// }else{
// x = *pp_ini;
// while(x){
// x = x->proximo;
// }
// }
// }
// else{
// printf("Nodo Inexistente");
// }
//}
int main(int argc, char *argv[]) {
setlocale(LC_ALL, "Portuguese");
Nodo *nodo_inicio, *nodo_fim;
puts("");
puts("1)");
cria_lista(&nodo_inicio, &nodo_fim);
puts("");
puts("2)");
insere_inicio(&nodo_inicio, &nodo_fim, 7);
insere_inicio(&nodo_inicio, &nodo_fim, 6);
insere_inicio(&nodo_inicio, &nodo_fim, 5);
imprime_lista_inicio(nodo_inicio);
puts("");
puts("3)");
imprime_lista_inicio(nodo_inicio);
puts("");
puts("4)");
insere_inicio(&nodo_inicio, &nodo_fim, 4);
imprime_lista_inicio(nodo_inicio);
puts("");
puts("5)");
insere_fim(&nodo_inicio, &nodo_fim, 77);
imprime_lista_inicio(nodo_inicio);
puts("");
puts("6)");
remove_inicio(&nodo_inicio, &nodo_fim);
imprime_lista_inicio(nodo_inicio);
puts("");
puts("7)");
insere_inicio(&nodo_inicio, &nodo_fim, 33);
imprime_lista_inicio(nodo_inicio);
return 0;
}
If you remove the last part (7) it compiles normally, I believe the problem is in the remove_start function.
– Lucas Tovo
paste the error message, usually in the message is shown also the line that gave error...moreover, without the error message it is difficult for anyone to try to help
– zentrunix
n has error message, it just loops in, printing values non-stop...
– Lucas Tovo
but the title of your question is "error when compiling"...
– zentrunix
Okay, now you can help me?
– Lucas Tovo