private void cisaoArvoreB (NoB cabecalho) {
		int n = 0;
		NoB temp1;
		NoB temp2;
		NoB pag1 = cabecalho; //cabecalho e' o cabeçclho da página desbalanceada
		NoB pag2 = new NoB(pag1.chave - MIN_CHAVES - 1, null, pag1, null);
		pag1.chave = MIN_CHAVES;
		temp1 = pag2.proximo;
		
		while (n <= MIN_CHAVES) { //temp1 aponta para o no que vai subir
			temp1 = temp1.proximo;
			n++;
		}
		temp2 = temp1.proximo; //temp2 guarda a nova página
		temp1.proximo = null;
		pag2.pagina = temp1.pagina; //caso o nó que vai subir seja "pai" de uma pagina, preserva-se
		if (pag2.pagina != null) pag2.pagina.anterior = pag2;
		//organizacao de ponteiros
		pag2.proximo = temp2;
		temp2.anterior = pag2;
		temp1.anterior.proximo = null;
		temp1.anterior = null;
		temp1.pagina = pag2;
		pag2.anterior = temp1;
		if (pag1.anterior == null) { //caso a chave que subir torne-se a nova raiz
			NoB pag3;
			pag3 = new NoB(1, pag1, temp1, null);
			pag1.anterior = pag3;
			temp1.anterior = pag3;
			raiz = pag3;
		}
		else {
			pag1 = pag1.anterior;
			temp2 = pag1.proximo;
			pag1.proximo = temp1;
			temp1.anterior = pag1;
			temp1.proximo = temp2;
			if (temp2 != null) temp2.anterior = temp1;
			while (pag1 != null && pag1.pagina != pag2){ //procura cabecalho
				pag2 = pag1;
				pag1 = pag1.anterior;
			}
			pag2.chave++;
			if (pag2.chave >= MAX_CHAVES) cisaoArvoreB(pag2); //cisao executada recursivamente
		}
	}