int main(void){
    char* cpf = (char*)malloc(sizeof(char));
    char* nome = (char*)malloc(sizeof(char));
    int i, qtd;

    Lista* lista;

    lista = criarLista();
    /*
    printf("Quantos registros deseja inserir na lista?\n");
    scanf("%d", &qtd);

    for(i = 0; i < qtd; i++){
        printf("Insira seu CPF: ");
        scanf("%s",cpf);
        printf("Insira seu Nome: ");
        scanf("%s",nome);

        lista = insereOrdNaLstSemRepet(lista, cpf, nome);
    }

    */
    // basta fazer os testes utilizando os métodos, ex. logo abaixo:
    lista = insereOrdNaLstSemRepet(lista, "07348605605", "lol");
    lista = insereOrdNaLstSemRepet(lista, "07348605600", "aaa");
    lista = insereOrdNaLstSemRepet(lista, "07348605600", "bbb");
    lista = insereOrdNaLstSemRepet(lista, "07348605699", "ccc");
    lista = insereOrdNaLstSemRepet(lista, "07048605699", "ddd");
    lista = insereOrdNaLstSemRepet(lista, "07448605699", "eee");


    imprimirLista(lista);

    return 0;
}
Exemplo n.º 2
0
///-------------------------------------------------------------------------
/// Acessar a Partir do Fim
///-------------------------------------------------------------------------
CLIENTE * acessarAPartirFim(LISTA ** lista, int pos)
{
    int cont=0;
    LISTA * novo = (LISTA*)calloc (1,sizeof(LISTA));
    LISTA * aux = *lista;
    CLIENTE cl;
    CLIENTE *cp;

    novo = criarLista();

    if (*lista == NULL)
    {
        return NULL;
    }
    else
    {
        while(aux!=NULL)
        {
            cl = aux->info;
            inserirInicio(&novo, cl);
            aux=aux->prox;
        }
    }

    aux=novo;

    while(aux!=NULL && cont!=pos)
    {
        aux=aux->prox;
        cont++;
    }

    if (cont!=pos)
    {
        return NULL;
    }
    else
    {
        return &aux->info;
    }

    destruir(&novo);
}
Exemplo n.º 3
0
int main()
{
//    LISTA* l = criarLista();
//    REGISTRO reg;
//    int tam;
    l = criarLista();
    pthread_t produtor1, produtor2, consumidor1, consumidor2;
    char* message1 = "Produtor ";
    char* message2 = "Consumidor ";

    pthread_create(&produtor1, NULL, inserirComThread, (void*) message1);
    pthread_create(&produtor2, NULL, inserirComThread, (void*) message1);
    pthread_create(&consumidor1, NULL, removerComThread, (void*) message2);
    pthread_create(&consumidor2, NULL, removerComThread, (void*) message2);
    
    pthread_join(produtor1, NULL);
    pthread_join(produtor2, NULL);
    pthread_join(consumidor1, NULL);
    pthread_join(consumidor2, NULL);

    printf("Lista : ");
    exibirLista(l);
    printf("\n");
    /*
    reg.c = 'a';
    inserir(l, reg);
    reg.c = 'b';
    inserir(l, reg);
    reg.c = 'c';
    inserir(l, reg);
    reg.c = 'd';
    inserir(l, reg);
    reg.c = 'e';
    inserir(l, reg);
    remover(l, &reg);
    remover(l, &reg);
    exibirLista(l);
    tam = nElementos(l);
    printf("Tamanho da lista: %d\n", tam);
    printf("\n");
    */
    return 0;
}
Exemplo n.º 4
0
int main() {
    ListaEnc* minhaLista = criarLista();

    // insere o 7 no inicio da lista {7}
    inserirNoFim(minhaLista, 7,100);
    printf("%d\n",minhaLista->inicio->posMem);
    //inserirNoFim(minhaLista, 5);
    //inserirNoInicio(minhaLista, 4);
    //inserirNoFim(minhaLista, 3);

    int i;
    //obterElemento(minhaLista, &i, 2);
    //printf("Elemento da posicao 2: %d\n", i);

   /* imprimir(minhaLista);
    removerDoFim(minhaLista, NULL);
    imprimir(minhaLista);
    remover(minhaLista, NULL, 2);
    imprimir(minhaLista);
    removerDoInicio(minhaLista, NULL);
    imprimir(minhaLista);*/
}
Exemplo n.º 5
0
///-------------------------------------------------------------------------
/// MAIN
///-------------------------------------------------------------------------
int main()
{
    int op=0;
    int posicao=0;

    char vetNome[30];
    LISTA *lista;

    CLIENTE dl;
    CLIENTE *cp;

    lista = criarLista();

    do
    {
        printf("1 - Criar Lista\n");
        printf("2 - Inserir Inicio\n");
        printf("3 - Inserir Final\n");
        printf("4 - Inserir Posicao\n");
        printf("5 - Acessar a partir Inicio\n");
        printf("6 - Acessar a partir Fim\n");
        printf("7 - Listar do inicio ao fim\n");
        printf("8 - Listar do fim ao inicio\n");
        printf("9 - Eliminar\n");
        printf("10 - Buscar nome Retorna endereco\n");
        printf("11 - Buscar nome Retorna posicao\n");
        printf("12 - Tamanho da Lista\n");
        printf("13 - Destruir\n");
        printf("14 - Sair\n");
        printf("15 - Salvar\n");
        printf("16 - Ler\n");
        printf("opcao: ");
        scanf("%d", &op);

        switch(op)
        {
            case 1: //Criar Lista
                    lista = criarLista();
                    break;
            case 2: // Inserir Inicio
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    inserirInicio(&lista, dl);
                    break;
            case 3: // Inserir Final
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    inserirFinal(&lista, dl);
                    break;
            case 4: // Inserir Posicao
                    printf("nome: ");
                    scanf("%s", dl.nome);
                    printf("idade: ");
                    scanf("%d", &dl.idade);
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    inserirPosicao(&lista, posicao, dl);
                    break;
            case 5: // Acessar a partir Inicio
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    cp = acessarAPartirInicio(&lista, posicao);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("posicao nao existe\n");
                    }
                    break;
            case 6: // Acessar a partir Fim
                    printf("posicao: ");
                    scanf("%d", &posicao);
                    cp = acessarAPartirFim(&lista, posicao);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("posicao nao existe\n");
                    }
                    break;
            case 7: // Listar do Inicio ao Fim
                    listarInicioFim(&lista);
                    break;
            case 8: // Listar do Fim ao Inicio
                    listarFimInicio(&lista);
                    break;
            case 9: // Eliminar Posição
                    printf("posicao: ");
                    //scanf("%s", &posicao);
                    scanf("%d", &posicao);
                    eliminarPosicao(&lista, posicao);
                    break;
            case 10:     // Buscar e retornar Endereco
                    printf("nome: ");
                    scanf("%s", &vetNome);
                    cp = buscarEnderecoNome(vetNome, &lista);
                    if (cp!=NULL)
                    {
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("nao existe o nome\n");
                    }
                    break;
            case 11:     // Buscar e retornar Posicao
                    printf("nome: ");
                    scanf("%s", &vetNome);
                    posicao = buscarPosicaoNome(vetNome, &lista);
                    if (posicao >= 0)
                    {
                        printf("posicao: %d\n", posicao);
                        cp = acessarAPartirInicio(&lista, posicao);
                        printf("nome: %s\n", cp->nome);
                        printf("idade: %d\n", cp->idade);
                    }
                    else{
                        printf("nao existe o nome\n");
                    }
                    break;
            case 12:// Tamanho da lista
                    printf("tamanho: %d\n\n", tamanho(&lista)); // nao precisa passar por referencia
                    break;
            case 13:// Destruir Lista
                    destruir(&lista);
                    break;
            case 15:// Salvar
                    salvar(&lista);
                    break;
            case 16:// Ler
                    ler(&lista);
                    break;

        }

    }while(op!=14);

    return 0;
}