int main() { FILE *f; Dados l; char nome[30]; char rua[40]; int numero; float telefone; char cidade[20]; char estado[10]; inicLista(&l); f = fopen("arq.in", "r"); if (f == NULL) { perror("Erro ao abrir o arquivo"); return 1; } while(fscanf(f, "%[^\n]\n%[^\n]\n%d\n%f\n%[^\n]\n%[^\n]\n",nome,rua, &numero, &telefone,cidade, estado) != EOF) { insereInicio(&l,nome,rua, numero, telefone,cidade, estado); } exibe(&l); fclose(f); return 0; }
lista *inserePosN(lista *inicio){ lista *novo, *anterior, *proximo; int num, pos; int numLista = contaLista(inicio); do{ printf("\nInsira a posicao da lista na qual voce deseja adicionar um nodo: "); scanf("%d", &pos); if (pos < 0 || pos > numLista+1){ printf("\nA lista possui %d posicoes, insira uma posicao compativel para inserir um nodo!"); } } while (pos < 0 || pos > numLista+1); if (isPrimeiro(pos)){ inicio = insereInicio(inicio); } else if (pos == numLista+1){ inicio = insereFim(inicio); } else{ printf("\nDigite um valor para inserir no novo nodo: "); scanf("%d", &num); novo = getMallocLista(); anterior = pegaNodoN(inicio, pos - 1); proximo = pegaNodoN(inicio, pos + 1); if (novo != 0){ novo->valor = num; novo->prox = anterior->prox; anterior->prox = novo; } imprimeLista(inicio, pos, 0, 1); } return inicio; }
void opcao(node *LISTA, int op) { switch(op){ case 0: libera(LISTA); break; case 1: exibe(LISTA); break; case 2: insereInicio(LISTA); break; case 3: insereFim(LISTA); break; case 4: inicia(LISTA); break; default: printf("Comando invalido\n\n"); } }
//função que distribui as peças, seis para o jogador, seis para a máquina e um para a mesa. //recebe um deck embaralhado e retorna o resto do deck, depois de distribuir Node *distribui(Node *pecas) { int i; //distribui para mão do jogador for (i=0; i<=6; i++) { playerHand=insereInicio(playerHand, pecas->numberLeft, pecas->numberRight); pecas=pecas->right; free(pecas->left); pecas->left=NULL; } //distribui para a mão da maquina for (i=0; i<=6; i++) { machineHand=insereInicio(machineHand, pecas->numberLeft, pecas->numberRight); pecas=pecas->right; free(pecas->left); pecas->left=NULL; } return pecas; }
//Função que inicia o "deck" de peças de dominó Node *criaPecas () { int i, j; Node *domino = NULL; for (i=0; i<=6; i++){ for (j=i; j<=6; j++) { domino = insereInicio(domino, i, j); } } return domino; }
int main(){ lista lst; initLista(&lst); insereInicio(&lst, 10); insereOrdenado(&lst, 1); imprimeLista(&lst); return 0; }
/* Insere um elemento no final da lista */ void insereFim(Lista *p_l, elem_t e){ No_lista *no, *aux; if(listaVazia(p_l)){ insereInicio(p_l,e); }else{ no = malloc(sizeof(No_lista)); no->info = e; aux = *p_l; while(aux->prox != NULL){ aux = aux->prox; } aux->prox = no; no->prox = NULL; } }
int main(int argc, char** argv) { lista *ptri = NULL; int menu = 1; printf("************************************************"); printf("\n* OPERACOES COM LISTAS SIMPLESMENTE ENCADEADAS *"); printf("\n************************************************"); printf("\nPressione ENTER para continuar.."); getch(); while (menu != 0){ if (ptri != NULL){ menu = imprimeMenu(); switch (menu){ case 1: ptri = insereInicio(ptri); break; case 2: ptri = insereFim(ptri); break; case 3: ptri = inserePosN(ptri); break; case 4: trocaPos(ptri); break; case 5: ptri = deletaNodo(ptri); break; case 6: imprimeLista(ptri, 0, 0, 1); break; }//fecha switch menu }//fecha if else{ ptri = inserePrimeiro(ptri); } }//fecha while return (EXIT_SUCCESS); }
//função que embaralha as peças //recebe o cabeçalho da lista e retorna ela atualizada Node *embaralha(Node *pecas) { srand( (unsigned)time(NULL)); Node *vPecas, *vBaralho=(Node *)malloc(28*(sizeof(Node))); int i, ri, count=0; vPecas = toArray(pecas, &i); limpaLista(pecas); // esse while vai distribuir do vetor ordenado para um vetor aleatório while (count <28) { ri = rand()%28; if (vPecas[ri].numberRight != -1) { vBaralho[count]=vPecas[ri]; vPecas[ri].numberRight=-1; count++; } } pecas=NULL;//inicializa pecas for (i=0; i<28; i++) { pecas=insereInicio(pecas,vBaralho[i].numberLeft, vBaralho[i].numberRight); } return pecas; }
int main(){ int num, opcao; Lista l; inicLista(&l); opcao = 1; while(opcao <= 10 && opcao > 0){ printf("\n 1 - insere um numero no inicio da lista"); printf("\n 2 - insere um numero no fim da lista"); printf("\n 3 - insere um numero de maneira ordenada"); printf("\n 4 - verifica se a lista esta ordenada"); printf("\n 5 - ordena a lista"); printf("\n 6 - remove o elemento que esta no inicio da lista"); printf("\n 7 - remove o elemento que esta no fim da lista"); printf("\n 8 - remove um valor determinado"); printf("\n 9 - inverte"); printf("\n 10 - exibe a lista"); printf("\n qualquer outro numero para sair"); printf("\n\nEntre com uma das opcoes acima: "); scanf("%d", &opcao); switch (opcao){ case 1: printf("\n\nEntre com o numero a ser inserido: "); scanf("%d", &num); insereInicio(&l, num); break; case 2: printf("\n\nEntre com o numero a ser inserido: "); scanf("%d", &num); insereFim(&l, num); break; case 3: printf("\n\nEntre com o numero a ser inserido: "); scanf("%d", &num); insereOrdenado(&l, num); break; case 4: if (ordenada(&l)) printf("\nLista ordenada\n"); else printf("\nLista desordenada\n"); break; case 5: ordena(&l); break; case 6: if (removeInicio(&l, &num)) printf("\nNumero removido: %d\n", num); else printf("\nLista vazia"); break; case 7: if (removeFim(&l, &num)) printf("\nNumero removido: %d\n", num); else printf("\nLista vazia"); break; case 8: printf("\n\nEntre com o numero a ser removido: "); scanf("%d", &num); if (!removeValor(&l, num)) printf("Numero nao encontrado"); break; case 9: inverte(&l); break; case 10: exibe(&l); break; } exibe(&l); printf("\n\n"); } // libera(&l); return 0; }
int main(){ No_Lista ls; No_Lista *ld; int i; inicLista(&ls); inicListaD(&ld); insereInicio(&ls, 7); insereInicio(&ls, 4); insereInicio(&ls, 5); insereInicio(&ls, 3); insereInicio(&ls, 6); exibe(&ls); printf("\n"); removeMaior1(&ls, &i); printf("\n%d\n", i); exibe(&ls); removeMaior1(&ls, &i); printf("\n%d\n", i); exibe(&ls); removeMaior1(&ls, &i); printf("\n%d\n", i); exibe(&ls); removeMaior1(&ls, &i); printf("\n%d\n", i); exibe(&ls); removeMaior1(&ls, &i); printf("\n%d\n", i); exibe(&ls); removeMaior1(&ls, &i); printf("\n%d\n", i); printf("\n\n"); insereInicioD(&ld, 7); insereInicioD(&ld, 4); insereInicioD(&ld, 5); insereInicioD(&ld, 3); insereInicioD(&ld, 6); exibe(ld); printf("\n"); imprimeRec(ld); printf("\n"); imprimeIt(ld); printf("\n"); removeMaior3(&ld, &i); printf("\n%d\n", i); exibe(ld); removeMaior3(&ld, &i); printf("\n%d\n", i); exibe(ld); removeMaior3(&ld, &i); printf("\n%d\n", i); exibe(ld); removeMaior3(&ld, &i); printf("\n%d\n", i); exibe(ld); removeMaior3(&ld, &i); printf("\n%d\n", i); exibe(ld); removeMaior3(&ld, &i); printf("\n%d\n", i); //exibe(ld); printf("\n\n"); return 0; }