public int insertar(int idtransaccion, string idtranNom, string idactivo, string nombreactivo, string descripcion, string nombreusuario, string departamento, string empresa, string fecha, string tiempo) { NodoB a = new NodoB(idtransaccion, idtranNom, idactivo, nombreactivo, descripcion, nombreusuario, departamento, empresa, fecha, tiempo); insertarr(a, inicio); return(a.nofactura); }
// WEB SERVICE NUEVO public NodoB retornarNodo(NodoB clave, Pagina raiz) { int pos = 0; if (vacio(raiz)) /// crea los nodos para insertar en la pagina { Console.WriteLine("no existe"); return(null); } else { pos = existeNodo(clave, raiz); if (existe1) { NodoB aux; int n = raiz.claves[pos - 1].getNofactura(); aux = raiz.claves[pos - 1]; Console.WriteLine("Se encontro a " + n); f**k = aux; return(aux); } else { int n = clave.getNofactura(); retornarNodo(clave, raiz.ramas[pos]); // se vuelve a llamar para crear el nodo a inertar en la pagina Console.WriteLine("No existe" + n); return(null); } } }
public NodoB nodoAB(int nofactura) { f**k = null; NodoB n = new NodoB(nofactura, "", "", "", "", "", "", "", "", ""); retornarNodo(n, inicio); return(f**k); }
void insertarr(NodoB clave, Pagina raiz) { agregar(clave, raiz); if (pivote) { inicio = new Pagina(); inicio.cuentas = 1; inicio.claves[0] = inserta; inicio.ramas[0] = raiz; inicio.ramas[1] = enlace; } }
void insertarClave(NodoB clave, Pagina raiz, int posicion) { int i = raiz.cuentas; while (i != posicion) { raiz.claves[i] = raiz.claves[i - 1]; raiz.ramas[i + 1] = raiz.ramas[i]; --i; } raiz.claves[posicion] = clave; raiz.ramas[posicion + 1] = enlace; raiz.cuentas = ++raiz.cuentas; Console.WriteLine("INSERTO"); }
void agregar(NodoB clave, Pagina raiz) { int pos = 0; /// k=0; pivote = false; // EmpA=false; if (vacio(raiz)) /// crea los nodos para insertar en la pagina { pivote = true; //Emp=false; inserta = clave; // X=clave enlace = null; //Xr=null; } else { pos = existeNodo(clave, raiz); if (existe) { pivote = false; } else { agregar(clave, raiz.ramas[pos]); // se vuelve a llamar para crear el nodo a insertar en la pagina if (pivote) { if (raiz.cuentas < 4) { pivote = false; insertarClave(inserta, raiz, pos); } else { pivote = true; dividirPagina(inserta, raiz, pos); Console.WriteLine("inserto"); } } } } }
public int existeNodo(NodoB clave, Pagina raiz) { int valor = 0; if (clave.nofactura < raiz.claves[0].nofactura) { existe1 = false; valor = 0; } else { valor = raiz.cuentas; while (clave.nofactura < raiz.claves[valor - 1].nofactura && valor > 1) { --valor; } existe = (clave.nofactura < raiz.claves[valor - 1].nofactura); existe1 = (clave.nofactura == raiz.claves[valor - 1].nofactura); } return(valor); }
void dividirPagina(NodoB clave, Pagina raiz, int posicion) { int pos = 0; int Posmda = 0; if (posicion <= 2) { Posmda = 2; } else { Posmda = 3; } Pagina Mder = new Pagina(); pos = Posmda + 1; while (pos != 5) { Mder.claves[(pos - Posmda) - 1] = raiz.claves[pos - 1]; Mder.ramas[pos - Posmda] = raiz.ramas[pos]; ++pos; } Mder.cuentas = 4 - Posmda; raiz.cuentas = Posmda; if (posicion <= 2) { insertarClave(clave, raiz, posicion); } else { insertarClave(clave, Mder, (posicion - Posmda)); } inserta = raiz.claves[raiz.cuentas - 1]; Mder.ramas[0] = raiz.ramas[raiz.cuentas]; raiz.cuentas = --raiz.cuentas; enlace = Mder; }
public Pagina(NodoB info) { claves[0] = info; }