private void prestarClave(CNodo paginaAux, CNodo paginaA, CNodo paginaB, int i, int posB) { int index,posClave; long dirClave; Object clave; if (i == paginaAux.getNumElemnt()) { posClave = paginaB.getNumElemnt() - 1; index = 0; paginaA.setAtClave(index+1,paginaA.getAtClave(index)); paginaA.setAtDirClaves(index+1,paginaA.getAtDirClaves(index)); paginaA.setAtDirNodo(index+1,paginaA.getAtDirNodo(index)); } else { posClave = 0; index = 1; } paginaA.setAtClave(index, paginaB.getAtClave(posClave)); paginaA.setAtDirClaves(index, paginaB.getAtDirClaves(posClave)); paginaA.setAtDirNodo(index, paginaB.getAtDirNodo(posClave)); paginaA.incNumElem(); paginaB.eliminaClaveOrd(paginaB.getAtClave(posClave)); if (i < posB) { clave = paginaB.getAtClave(0); dirClave = paginaB.getAtDirClaves(0); posB--; } else { clave = paginaA.getAtClave(0); dirClave = paginaA.getAtDirClaves(0); } paginaAux.setAtClave(posB,clave); paginaAux.setAtDirClaves(posB,dirClave); }
/**Presta una clave a alguna nodo del arbol*/ public void prestarClavePagina(CNodo paginaAux, CNodo paginaA, CNodo paginaB, int i, int posB) { int posClave, posIns, posEliminado; Object clave; if (i < posB) { posClave = i; clave = paginaAux.getAtClave(i); posIns = paginaA.getNumElemnt(); posEliminado = 0; } else { posClave = posB; clave = paginaAux.getAtClave(posB); posIns = 0; posEliminado = paginaB.getNumElemnt()-1; } paginaA.insClaveOrd(clave, null, null, posIns); paginaA.setAtDirClaves(posIns, paginaAux.getAtDirClaves(posClave)); paginaAux.setAtClave(posClave, paginaB.getAtClave(posEliminado)); paginaAux.setAtDirClaves(posClave, paginaB.getAtDirClaves(posEliminado)); if (i < posB) { paginaA.setAtDirNodo(posIns + 1, paginaB.getAtDirNodo(0)); paginaB.eliminaClaveOrd(paginaB.getAtClave(0)); } else { paginaA.setAtDirNodo(1, paginaA.getAtDirNodo(0)); paginaA.setAtDirNodo(0, paginaB.getAtDirNodo(posEliminado+1)); paginaB.eliminaClaveOrd(paginaB.getAtClave(posEliminado)); } }