Enviado em 09/10/2017 - 12:04h
Boa noite, pessoal.
#include <stdio.h>
#include <stdlib.h>
typedef struct Lista {
int numero;
struct Lista *prox;
} Lista;
void insereInicio(Lista *cabeca);
void exibirLista(Lista *cabeca);
void insereInicio(Lista *cabeca) {
int num;
Lista *novo, *aux;
novo = (Lista *)malloc(sizeof(Lista));
printf("Digite o número: ");
scanf("%d", &novo->numero);
while (novo->numero != 0) {
if (cabeca->prox == NULL) {
cabeca->prox = novo;
novo->prox = NULL;
}
else {
novo = cabeca;
cabeca->prox = novo;
}
printf("Digite o número: ");
scanf("%d", &novo->numero);
}
}
void exibirLista(Lista *cabeca) {
Lista *aux;
aux = cabeca;
if (cabeca == NULL) {
printf("Lista vazia!");
}
else {
while (aux->prox != NULL) {
printf("Número: %d", aux->numero);
aux = aux->prox;
}
}
}
int main() {
int opc;
Lista *cabeca = NULL;
cabeca = (Lista *)malloc(sizeof(Lista));
cabeca->prox = NULL;
do {
printf("Escolha o tipo de inserção:\n\n");
printf("[1] - No início da lista\n[2] - No fim da lista\n[3] - Em uma dada posição\n[0] - Sair\n");
scanf("%d", &opc);
} while ((opc != 1) && (opc != 2) && (opc != 3) && (opc != 0));
switch (opc) {
case 1:
insereInicio(cabeca);
break;
case 2:
//insereFim();
break;
case 3:
//inserePosicao();
break;
case 0:
exit(1);
default:
break;
}
getchar();
system("clear");
exibirLista(cabeca);
return 0;
}