Lista encadeada

539 palavras 3 páginas
#include
#include
#include

typedef struct nodo{ char nome[30]; char fone[15]; struct nodo *anterior, *proximo;
}lista;

lista *primeiro, *atual, *anterior, *proximo, *gravar;

void insere(char tipo){

if(primeiro == NULL){ primeiro = malloc(sizeof(lista)); primeiro->proximo = gravar; primeiro->anterior = gravar; gravar->anterior = primeiro; gravar->proximo = primeiro;
}
else{ if(tipo == 'M'){ atual = primeiro->proximo;

while(strcmp(gravar->nome,atual->nome) > 0){ if(atual != primeiro) atual = atual->proximo; else break;
}
anterior = atual->anterior;

proximo = atual; /* o endereço de atual vai para proximo */

anterior->proximo = gravar; /* Os dados contidos em "gravar" serão inseridos entre */ gravar->anterior = anterior; /* as os nodos referencia "anterior" e "proximo" */ gravar->proximo = proximo; proximo->anterior = gravar;
}
if(tipo == 'F'){ anterior = primeiro->anterior; proximo = primeiro;

anterior->proximo = gravar; /* Os dados contidos em "gravar" serão inseridos entre */ gravar->anterior = anterior; /* as os nodos referencia "anterior" e "proximo" */ gravar->proximo = proximo; proximo->anterior = gravar;
}
}
}

void NovoReg(void){ system("cls"); gravar = malloc(sizeof(lista));

printf("Nome: "); gets(gravar->nome); printf("\nFone: "); gets(gravar->fone); insere('M'); /* chamada do procedimento de inserção */
/* 'M' corresponde a inserção no meio ( acarretando em encadeamento ordenado) e */
/* 'F' corresponde a inserção no fim */

printf("\nSeu registro foi incluido!\n\n"); system("pause"); }

void listar(void){ char op;

if(primeiro == NULL){ system("cls"); printf("Nenhum registro armazenado...\n\n"); system("pause"); return;
}
else{

atual = primeiro->proximo;

do{ system("cls"); printf("Pressione + e - para alternar entre os registros e para sair.\n\n");

printf("Nome: %s\n\nFone:

Relacionados

  • Listas encadeadas
    544 palavras | 3 páginas
  • Lista Encadeada
    291 palavras | 2 páginas
  • Listas encadeadas
    509 palavras | 3 páginas
  • LISTA ENCADEADA
    290 palavras | 2 páginas
  • listas encadeadas
    793 palavras | 4 páginas
  • lista encadeada
    1592 palavras | 7 páginas
  • Lista encadeada
    2771 palavras | 12 páginas
  • Listas Encadeadas
    549 palavras | 3 páginas
  • Lista encadeada
    1159 palavras | 5 páginas
  • lista encadeada
    430 palavras | 2 páginas