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; }
///------------------------------------------------------------------------- /// 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); }
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, ®); remover(l, ®); exibirLista(l); tam = nElementos(l); printf("Tamanho da lista: %d\n", tam); printf("\n"); */ return 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);*/ }
///------------------------------------------------------------------------- /// 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; }