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; }
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); }
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)); } }
void Arvore::adicionar(const float cValor) { if(raiz == NULL) { raiz = new No(cValor); } else { adicionar(cValor, raiz); } }
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; }
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; } } }
void Lista::adicionar(Objeto *valor) { adicionar(new ItemLista(valor)); }
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; }