Esempio n. 1
0
int main () {
	int elemento;
	LISTA lista;
	construir(&lista);
	tamanho(&lista);
	adicionar(&lista,  0, 6);
	exibeLista(&lista);
	tamanho(&lista);
	adicionar(&lista,  1, 7);
	adicionar(&lista,  2, 5);
	adicionar(&lista,  3, 10);
	exibeLista(&lista);
	tamanho(&lista);
	adicionar(&lista,  3, 17);
	exibeLista(&lista);
	deletarElemento(&lista,  1);
	exibeLista(&lista);
	elemento = busca(&lista, 6);
	if (elemento != -1){
		printf("%d\n", elemento);
	}else{
		printf("Elemento não encontrado!\n");
	}
	tamanho(&lista);
	return 0;

}
Esempio n. 2
0
int main () {
	LISTA lista;
	construir(&lista);
	adicionar(&lista, 4);
	adicionar(&lista, 6);
	adicionar(&lista, 7);
	adicionar(&lista, 8);
	tamanho(&lista);
	mostrar(&lista);
	adicionar(&lista, 45);
	tamanho(&lista);
	mostrar(&lista);
}
Esempio n. 3
0
int Componentes::adicionarVarios(list<string> its, int valor) {
    if (its.size() == 1) { 
        return this->adicionar(its.front(), valor);
    }
    else {
    	string s = its.front();
    	its.pop_front();
        return adicionar(s, adicionarVarios(its, valor));
    }
}
Esempio n. 4
0
void Arvore::adicionar(const float cValor)
{
	if(raiz == NULL)
	{
		raiz = new No(cValor);
	}
	else
	{
		adicionar(cValor, raiz);
	}
}
Esempio n. 5
0
No* Arvore::adicionar(const float cValor, No* pNo)
{
	if(cValor < pNo->getValor())
	{
		if(pNo->getEsquerda())
		{
			pAux3 = adicionar(cValor, pNo->getEsquerda());
			if(pAux3)
			{
				pNo->setEsquerda(pAux3);
			}
			altura(pNo);
			pAux3 = balancear(pNo);
		}
		else
		{
			pNo->setEsquerda(new No(cValor));
			return NULL;
		}
	}
	else
	{
		if(pNo->getDireita())
		{
			pAux3 = adicionar(cValor, pNo->getDireita());
			if(pAux3)
			{
				pNo->setDireita(pAux3);
			}
			altura(pNo);
			pAux3 = balancear(pNo);
		}
		else
		{
			pNo->setDireita(new No(cValor));
			return NULL;
		}
	}

	return pAux3;
}
//Programa principal
int main (int argc, char *argv[]) {
    int opcao;
    bool sair=true;
    int numero;

    do {
        system("cls");
        printf ("\t\t\tAVALIACAO DIAGNOSTICA - ED1");
        printf ("\n\t\t1 - Adicionar um novo numero:");
        printf ("\n\t\t2 - Remover um numero existente:");
        printf ("\n\t\t3 - Exibir os numeros fornecidos:");
        printf ("\n\t\t4 - Remover numero de uma posicao especifica:");
        printf ("\n\t\t5 - Verificar numero de ocorrencias de determinado numero:");
        printf ("\n\t\t6 - Exibir os numeros fornecidos em ordem crescente:");
        printf ("\n\t\t7 - Sair: ");
        printf ("\n\t\t\tOpcao: ");
        scanf ("%d",&opcao);

        switch(opcao) {
        case 1: //Inserir função adicionar numero
            printf("Insira um número positivo: ");
            scanf("%i", &numero);

            if (adicionar(numero))
                printf("Número adicionado");
            else
                printf("Não foi possível adicionar esse número");
            break;
        case 2: //Inserir função remover numero existente
            break;
        case 3: //Inserir função exibir números na ordem que foram inseridos
            break;
        case 4: //Inserir função remover número de uma posição especifica.
            break;
        case 5: //Inserir função verificar quantas ocorrencias um determinado número possui
            break;
        case 6: //Inserir função exibir números em ordem crescente
            break;
        case 7:
            sair=false;
            break;
        default:
            break;
        }
    } while (sair);

    return 0;
}
Esempio n. 7
0
Node Pagina::dividir(Node no)
{
    Pagina *paginas = dividir_pagina();
    Pagina *mae = this;
    unsigned int where = -1;
    Pagina menor = paginas[0];
    Pagina meio  = paginas[1];
    Pagina maior = paginas[2];

    /* dividir filhas */
    menor.no_pagina = ++NUMERO_PAGINA;
    menor.no_mae = no_pagina;

    maior.no_pagina = ++NUMERO_PAGINA;
    maior.no_mae = no_pagina;

    /* lidar com mãe */
    no = meio.dados[0];
    if (no_mae == (unsigned int) -1)
    {
        where = adicionar(no);
        filhas.insert(filhas.begin() + where++, NUMERO_PAGINA-1);
        filhas.insert(filhas.begin() + where, NUMERO_PAGINA);
    }
    else
    {
        mae = new Pagina(no_mae);
        // erase current daughter
        where = toolbox::encontrar(mae->filhas, no_pagina);
        mae->filhas.erase(mae->filhas.begin() + where);
        // add new daughters
        mae->adicionar(no);
        mae->filhas.insert(mae->filhas.begin() + where++, NUMERO_PAGINA-1);
        mae->filhas.insert(mae->filhas.begin() + where, NUMERO_PAGINA);
    }

    menor.no_mae = mae->no_pagina;
    menor.salvar();

    maior.no_mae = mae->no_pagina;
    maior.salvar();

    mae->salvar();
    nova_mae = mae;
    delete paginas;
    return meio.dados[0];
}
int main ()
{
    int n,i,a;
    printf("Inicializando arvore. Quantos valores deseja entrar? ");
    scanf("%d",&n);
    while (n<1)//Previne erros e garante que pelo menos 1 item estara na arvore.
    {
        printf("Entre com pelo menos um numero. Quantos valores deseja entrar? ");
        scanf("%d",&n);
    }
    printf("Entre com os numeros:\n");
    for (i=0;i<n;i++)//preenche a arvore.
    {
        scanf("%d",&a);
        adicionar (a);
    }
    i=0;
    while (i!=1)
        i=menu();//chama o menu e retorna 1 quando quiser sair.
    free_memory(root);//desaloca a memoria.
}
int menu ()//funcao que imprime o menu e executa a opcao escolhida
{
    int i,j,n,a;
    printf("\nO que deseja fazer agora? Digite o numero com sua opcao:\n");
    printf("1. Adicionar novos numeros.\n2. Remover um numero.\n3. Buscar um numero.\n4. Imprimir a arvore.\n5. Sair\nOpcao: ");
    scanf("%d",&i);
    switch (i)//pula para a opcao escolhida.
    {
        case 1:
            {
                printf("Quantos numeros pretende entrar? ");
                scanf("%d",&n);
                while (n<1)
                {
                    printf("Entre com pelo menos um numero. Quantos valores deseja entrar? ");
                    scanf("%d",&n);
                }
                printf("Entre com os numeros:\n");
                for (j=0;j<n;j++)
                {
                    scanf("%d",&a);
                    adicionar (a);
                }
                printf("Numeros adicionados!\n");
                return 0;
            }
        case 2:
            {
                printf("Qual numero voce deseja remover? ");
                scanf("%d",&a);
                if (busca(root,a)==1)
                {
                    remover(a);
                    printf("Item removido!\n");
                    return 0;
                }
                else
                {
                    printf("O item nao pode ser removido pois nao se encontra na arvore.\n");
                    return 0;
                }
            }
        case 3:
            {
                printf("Qual numero deseja buscar? ");
                scanf("%d",&a);
                if (busca(root,a)==1)
                    printf("Numero encontrado! Ele ja esta na arvore.\n");
                else
                    printf("Numero nao encontrado.\n");
                return 0;
            }
        case 4://conta com um switch interno, para que se escolha como sera impressa a arvore
            {
               printf("Como voce deseja imprimi-los?\n1. Em ordem.\n2. Pre-ordem.\n3. Pos-ordem.\n4. Labelled bracketing.\nOpcao: ");
               scanf("%d",&j);
               switch (j)
               {
                   case 1:
                       {
                           print_in(root);
                           printf("\n");
                           return 0;
                       }
                   case 2:
                       {
                           print_pre(root);
                           printf("\n");
                           return 0;
                       }
                   case 3:
                       {
                           print_pos(root);
                           printf("\n");
                           return 0;
                       }
                   case 4:
                       {
                           print_col(root);
                           printf("\n");
                           return 0;
                       }
                   default:
                       {
                           printf("Ocorreu um erro. Tente novamente.\n");
                           return 0;
                       }
               }
            }
        case 5:
            return 1;
        default:
            {
            printf("Ocorreu um erro. Tente novamente.\n");
            return 0;
            }
    }
}
Esempio n. 10
0
void Lista::adicionar(Objeto *valor) {
   adicionar(new ItemLista(valor));
}
Esempio n. 11
0
int main() {
	short size;
	int sair = 0;
	int opcao;
	opcao = 10;

	if(!(file_especie = fopen("arquivos/especie.txt", "r+"))) {
		file_especie = fopen("arquivos/especie.txt", "w+");
	}
	if(!(file_individuo = fopen("arquivos/individuo.txt", "r+"))) {
		file_individuo = fopen("arquivos/individuo.txt", "w+");
	}
	if(!(file_capturado = fopen("arquivos/capturado.data", "rb+"))) {
		file_capturado = fopen("arquivos/capturado.data", "wb+");
	}
	while(sair == 0){
		desenhaMenu();
	
		while((opcao!=0) &&(opcao!=1) &&(opcao!=2) &&(opcao!=3) &&(opcao!=4) &&(opcao!=5) &&(opcao!=6) &&(opcao!=7)){
			opcao = pedeOpcao();		
		}
	
		switch(opcao){
			case 0:
				sair = 1;
				break;
	
			case 1:
				adicionar();
				opcao = 10;
				break;
	
			case 2:
				consultar();
				opcao = 10;
				break;
				
			case 3:
				remover();
				opcao = 10;
				break;
			
			case 4:
				consultaPre();
				opcao = 10;
				break;
	
			case 5:
				importar();
				opcao = 10;
				break;

			case 6:
				reescrever();
				rewriteArvore(file_especie);	
				opcao = 10;
				break;

			case 7:
				printTree();
				printf("\n> Arvore B exportada para: output/pages.txt\n");
				sleep(1);
				opcao = 10;
				break;	
		}
	}
	fclose(file_especie);
	fclose(file_individuo);
	fclose(file_capturado);
	return 0;
}