/*
 * 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;
}
示例#2
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;
}
示例#3
0
文件: compras.c 项目: german0/vendas
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;
}
示例#4
0
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;
}
示例#5
0
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;
}
示例#6
0
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);
	}
}
示例#7
0
文件: compras.c 项目: german0/vendas
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;
}
示例#8
0
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);
	}

}
示例#9
0
//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;
}
示例#11
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);
}