Lista dinamica
#include
#include
struct Registro
{
int valor; struct Registro *prox;
};
struct Registro *aux, *inicio = NULL, *final = NULL;
/*função responsável por criar a lista*/ struct Registro* cria(void)
{
return NULL;
}
/* função com tipo de retorno ponteiro para estrutura, realizando inserção pelo final*/ struct Registro* insere_final()
{
int x; printf("Entre com um numero inteiro: "); scanf("%i",&x); aux = (struct Registro*) malloc (sizeof(struct Registro)); aux-> valor = x; aux -> prox = (struct Registro *) NULL;
if(inicio == NULL) inicio = final = aux; else { final -> prox = aux; final = aux; } return inicio;
}
/* função que verifica o estado da lista: retorno 1 se vazia ou 0 se não vazia*/ int lista_vazia(struct Registro *lista)
{
if(lista == NULL) return 1; else return 0;
}
/* função responsável por imprimir o conteúdo da lista*/ void visualiza_lista_final(struct Registro *lista)
{
/* verifica se a lista está vazia*/ if(!lista_vazia(lista)) { aux = lista; while(aux != (struct Registro *) NULL) { printf("Valor da Lista: %i\n", aux->valor); aux = aux -> prox; } } /* indica que a lista está vazia*/ else printf("\nTentou imprimir uma lista vazia!"); getch(); }
/* função que busca um elemento na lista*/ struct Registro* busca(struct Registro* lista, int busca)
{
bool achou = 0; if(!lista_vazia(lista)) { for(aux=lista;aux!=NULL;aux=aux->prox) { if(aux->valor == busca) { printf("Valor encontrado.\n"); achou = 1; } } if(!achou) printf("Valor nao encontrado.\n"); } else { printf("\nTentou buscar de uma lista vazia"); } getch(); return NULL; }
/* função para excluir registros da lista*/ struct Registro* excluir(struct Registro