void remover2(long long int B[],long long int i) //Shifts down the tree swapping with the children whenever required. { long long int temp; if(i>count2) return; if(i*2<=count2 && B[i*2]<B[i*2+1]) { if(B[i*2]<B[i]) { temp=B[i*2]; B[i*2]=B[i]; B[i]=temp; remover2(B,i*2); } } else if(i*2+1<=count2) { if(B[i*2+1]<B[i]) { temp=B[i*2+1]; B[i*2+1]=B[i]; B[i]=temp; remover2(B,i*2+1); } } }
void deletetop2(long long int B[]) { // printf("%d\n",B[1]); if(count2==1) { B[1]=MAX; count2=0; return; } B[1]=B[count2]; B[count2]=MAX; count2--; remover2(B,1); }
main(){ incluir_teste(); mostrar(); /* printf("Digite a matricula procurada: "); scanf("%d",&matricula); int posicao = buscar(matricula); system("cls"); if(posicao != -1){ printf("Item procurado:\n"); printf("Matricula: %d\n",aluno[posicao].matricula); printf("Nome: %s\n",aluno[posicao].nome); printf("Idade: %d",aluno[posicao].idade); }else{ printf("Nenhum dado encontrado"); } */ int i; for(i = 0;i < 2;i++){ int mat; printf("Digite a matricula a remover: "); scanf("%d",&mat); int pos_aluno = buscar(mat); remover2(pos_aluno); } int id_maior = obtem_nota("maior"); printf(" ALUNO COM MAIOR NOTA\n"); printf("------------------------\n"); printf(" Matricula: %d \n",aluno[id_maior].matricula); printf("------------------------\n"); printf(" Nome: %s\n",aluno[id_maior].nome); printf("------------------------\n"); printf(" Idade: %d\n",aluno[id_maior].idade); printf("------------------------\n"); printf(" Nota: %d\n",aluno[id_maior].nota); }