/* * Função principal. */ int main(void){ /* * Primeiramente é criado um ponteiro para o tipo Lista. * que recebe o valor de retorno de crialista(), que é, * no caso NULL. Logo, uma lista vazia é criada. */ Lista *ls = criaLista(); /* * Depois chamo a função insereLista() quantas vezes for * necessária, tendo como parâmetros: a lista criada e o * valor que se quer colocar na informação. Ela retorna * o novo valor da lista que é atualizada na variável ls. * Sem isso o valor se perde na função e a lista não atualiza. */ ls = insereLista(ls, 9); ls = insereLista(ls, 8); ls = insereLista(ls, 7); ls = insereLista(ls, 6); ls = insereLista(ls, 5); ls = insereLista(ls, 4); ls = insereLista(ls, 3); ls = insereLista(ls, 2); ls = insereLista(ls, 1); ls = insereLista(ls, 0); /* * Chamada da função mostraLista() que tem como parametro a * lista que se quer mostrar. */ mostraLista(ls); return 0; }
int main() { int N; // numero de pessoas na fila Lista l; // lista - usada para a fila dinamica int i; // contador int pessoa; // idade da pessoa que entrou na fila int a; // quantidade de pessoas que foi atendida int tam; // tamanho da fila scanf("%d", &N); while (N > 0) { inicLista(&l); // insere as pessoas na fila for (i = 0; i < N; i++) { scanf("%d", &pessoa); insereLista(&l, pessoa); } // remove da fila as pessoas que ja foram atendidas scanf("%d", &a); for (i = 0; i < a; i++) { int e; removeInicio(&l, &e); printf("%d ", e); } printf("\n"); scanf("%d", &N); libera(&l); } return 0; }
LISTA clientes_SemComprasTFiliais(COMPRAS c,catalogoClientes clientes){ int i,m,k; boolean r,p; LISTA l=init_lista(10); char *cliente=(char *)malloc(6*sizeof(char)); /*Percorre todos os códigos no catalogo de clientes*/ for(i=0;i<26*10*10*10*10;i++){ p=true; cliente=reverte_indexClientes(i); if(existeClientes(cliente,clientes)){ r=true; for(k=0;k<12;k+=12){ for(m=0;m<12;m++){ r=procura_Cliente(c->mes[m+k],cliente); /*se encontrar o cliente em qualquer um dos 12 meses de cada uma das filiais termina o segundo ciclo*/ if(r==true) m=12; } /*se r for falso significa que percorreu 12 meses de uma filial e nao encontrou nenhuma compra desse cliente, o que significa que esse cliente nao fez compras em todos os filiais*/ if(r==false){ k=12*3; p=false; } } } /*insere os clientes que compraram em todos os filiais na lista*/ if(p==false) l=insereLista(l,cliente); } free(cliente); return l; }
No* geraVoos(int Naproximacao, No *lista, int estado)/*esse for cria nosso lista com voos desordenados*/ { int i; for(i = 0; i < Naproximacao; i++) lista = insereLista(estado,lista); return lista; }
grafo_ret insereVertice(t_grafo* g, char vertice[], int ID_tarefa, int executada, int duracao, int ini_min, int pre_req, int reqs[]){ if(g == NULL || vertice == NULL){ return GRAFO_ERR; } //verifica de o vertice já existe else if(buscaLista(g->vertices, vertice) != NULL){ return GRAFO_ERR; } insereLista(g->vertices, vertice, duracao, ID_tarefa, executada, ini_min, pre_req, reqs); return GRAFO_OK; }
void carregar_tabela(Hashtable *table) { int pos, i; char *ponteiro = ARQUIVO; Chave key; for(i = 0; i < (strlen(ARQUIVO) / TAM_REGISTRO); i++) { sscanf(ponteiro, "%[^@]@", key.pk); key.rrn = i; ponteiro += TAM_REGISTRO; pos = hashFunction(key, table->tam); insereLista(table, key); } }
LISTA clientes_ComprasTFiliaisLista(COMPRAS c,LISTA lista){ int i,m; boolean r; LISTA l=init_lista(10); char *cliente=(char *)malloc(6*sizeof(char)); for(i=0;i<getTamanho(lista);i++){ cliente=getClienteLista(lista,i); r=true; /*percorre a estrutura COMPRAS*/ for(m=0;m<12;m++){ r=procura_Cliente(c->mes[m],cliente); if(r==true) m=12; } if(r==true) l=insereLista(l,cliente); } free(cliente); return l; }
void cadastrar(Hashtable *table) { Jogador player; Chave key; readData(&player); strcpy(key.pk, player.pk); key.rrn = (strlen(ARQUIVO) / TAM_REGISTRO); if(buscaLista(table, key)) { printf(ERRO_PK_REPETIDA, key.pk); } else { if(insereLista(table, key)) insertFile(player, key.rrn); printf(REGISTRO_INSERIDO, key.pk); } }
//funcao que obtem os elementos ja removidos void getLista(FILE *fp, Lista *l){ int size; long int off; fseek(fp, 1, SEEK_SET); fread(&off, 8, 1, fp); while(off != -1){ insereLista(l, off); fseek(fp, off + 1, SEEK_SET); fread(&size, 4, 1, fp); fread(&off, 8, 1, fp); l->fim->size = size; } fseek(fp, 0, SEEK_SET); }
int addEntry(char *cmd, int argc, char **argv, agenda ag) { char *nome, *sobrenome, *endereco, *telefone, *email; nome = (char *) malloc(STRING_SIZE * sizeof(char)); sobrenome = (char *) malloc(STRING_SIZE * sizeof(char)); endereco = (char *) malloc(STRING_SIZE * sizeof(char)); telefone = (char *) malloc(TEL_SIZE * sizeof(char)); email = (char *) malloc(STRING_SIZE * sizeof(char)); if (!nome || !sobrenome || !endereco || !telefone || !email) { printf("Impossivel alocar memoria para nova entrada na agenda\n"); exit(EXIT_FAILURE); } printf("Nome: "); fgets(nome, STRING_SIZE, stdin); printf("Sobrenome: "); fgets(sobrenome, STRING_SIZE, stdin); printf("Endereco: "); fgets(endereco, STRING_SIZE, stdin); printf("Telefone: "); fgets(telefone, TEL_SIZE, stdin); printf("Email: "); fgets(email, STRING_SIZE, stdin); strtrim(nome); strtrim(sobrenome); strtrim(endereco); strtrim(telefone); strtrim(email); insereLista(ag, nome, sobrenome, endereco, telefone, email); printf("Salvo\n"); return 0; }
int imprimeCaminhoInterface(t_grafo* g, int IDDestino){ if(g==NULL){ return 1; } char ID[15], op[15]; do{ clear(); bkgd(COLOR_PAIR(5)); box(stdscr, ACS_VLINE, ACS_HLINE); mvprintw(2, 2, "Digite o ID da tarefa que deseja saber o caminho: "); getstr(ID); IDDestino = atoi(ID); if (buscaVertice(g, IDDestino) == NULL){ attron(COLOR_PAIR(3)); mvprintw(4, 2, "ERRO AO PROCURAR CAMINHO, VERIFIQUE SE A ENTRADA E VALIDA."); getch(); attroff(COLOR_PAIR(3)); } }while(buscaVertice(g, IDDestino) == NULL); TipoLista *l_concluidas = criaLista(); t_item item_aux, item_suc; t_item item_add; t_vertix *v, *v_sucessor; int true_inicio=0; int i =0, j=0; //Esses lacos criam a lista de concluidos com os pesos de todas as tarefas for(i = 0; i < tamanhoLista(getOrigens(g)); i++){ //checagem das origens e insercao na lista de concluidos item_aux = buscaListaInd(getOrigens(g), i); v = buscaVertice(g, item_aux.ID); item_add.ID = v->propriedades.ID; item_add.peso = v->propriedades.duracao + v->propriedades.inicio; if(insereLista(l_concluidas, item_add) == LISTA_ERR){ return 1; } }//for for(i = 0; i < tamanhoLista(l_concluidas); i++){ //checagem e insercao para o resto dos vertices item_aux = buscaListaInd(l_concluidas, i); v = buscaVertice(g, item_aux.ID); //busca vertice no grafo com a ID igual a celula na lista de concluidos if(v == NULL){ return 1; //assertiva de saida } for(j = 0; j < tamanhoLista(v->adjacentes); j++){ //trabalha com os sucessores de cada vertice dos concluidos item_suc = buscaListaInd(v->adjacentes, j); v_sucessor = buscaVertice(g, item_suc.ID); if(v_sucessor == NULL){ return 1; //assertiva de saida } true_inicio = get_maior_peso(g, l_concluidas, item_suc.ID); item_add.ID = v_sucessor->propriedades.ID; item_add.peso = true_inicio + v_sucessor->propriedades.duracao; if(buscaLista(l_concluidas, item_add.ID)==NULL){ //evitar a insercao de duplicados if(insereLista(l_concluidas, item_add) == LISTA_ERR){ return 1; } } }//for sucessores }//for lista_concluidos achaCaminhoMin(g,l_concluidas, IDDestino); //fim dos lacos, prosseguir para a impressao clear(); box(stdscr, ACS_VLINE, ACS_HLINE); int linha = 1, coluna = 2; t_vertix* AUX = buscaVertice(g, IDDestino); while(AUX != NULL){ mvprintw(linha, coluna, "%d -- %s", AUX->propriedades.ID, AUX->propriedades.nome); linha++; AUX = AUX->pai; } AUX = buscaVertice(g, IDDestino); mvprintw(linha, coluna, "Tempo para completar essa tarefa: %d", get_maior_peso(g, l_concluidas, AUX->propriedades.ID) + AUX->propriedades.duracao); attron(COLOR_PAIR(1)); mvprintw(linha+3,coluna, "Mais opções: 1 : selecionar outro tempo"); mvprintw(linha+4,coluna+17, "2 : visualizar todas as tarefas"); mvprintw(linha+5,coluna+17, "3 : Editar Tarefas"); mvprintw(linha+6,coluna+17, "4 : Procurar Caminho"); mvprintw(linha+7,coluna+17, "99 : Sair"); mvprintw(linha+8,coluna+17, "Digite sua opção:"); refresh(); getstr(op); attroff(COLOR_PAIR(1)); return atoi(op); }