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"); }
public void graficarPagina(StringBuilder n, Pagina raiz) { Pagina nodo = raiz; if (nodo == null) { } else { if (nodo.cuentas != 0) { int k = 0; n.Append("cancion_" + nodo.claves[0].nofactura + " [label= \""); for (k = 1; k <= nodo.cuentas; k++) { n.Append("<r" + (k - 1) + ">" + " | " + "<cl" + k + ">" + "IdTransacción: " + nodo.claves[k - 1].nofactura + " \" + "nFecha: " + nodo.claves[k - 1].fecha + " \" + "nTotal: " + nodo.claves[k - 1].idtransaccion + " \" + "nUsuario: " + nodo.claves[k - 1].nombreUsuario + " | "); } n.Append("<r" + (k - 1) + "> \"];\n"); for (k = 0; k <= nodo.cuentas; k++) { if (nodo.ramas[k] != null) { if (nodo.ramas[k].cuentas != 0) { n.Append("cancion_" + nodo.claves[0].nofactura + ":r" + k + " -> cancion_" + nodo.ramas[k].claves[0].nofactura + ";\n"); Console.WriteLine(n.ToString()); } else { } } } for (k = 0; k <= nodo.cuentas; k++) { graficarPagina(n, nodo.ramas[k]); } } else { } } }
public void graficarBuscar(Pagina raiz, string nombre) { Pagina nodo = raiz; if (nodo == null) { } else { if (nodo.cuentas != 0) { int k = 0; for (k = 1; k <= nodo.cuentas; k++) { if (nombre.CompareTo(nodo.claves[k - 1].nombreUsuario) == 0) { token += nodo.claves[k - 1].nofactura + "->"; } } for (k = 0; k <= nodo.cuentas; k++) { if (nodo.ramas[k] != null) { if (nodo.ramas[k].cuentas != 0) { } else { } } } for (k = 0; k <= nodo.cuentas; k++) { graficarBuscar(nodo.ramas[k], nombre); } } else { } } }
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 void recorrerArbol(Pagina raiz, string fecha1, string fecha2) { try { DateTime f1 = Convert.ToDateTime(fecha1); DateTime f2 = Convert.ToDateTime(fecha2); Pagina nodo = raiz; if (nodo == null) { } else { if (nodo.cuentas != 0) { int k = 0; for (k = 1; k <= nodo.cuentas; k++) { string af = nodo.claves[k - 1].fecha; DateTime f11 = Convert.ToDateTime(af); if (f11.CompareTo(f1) >= 0 && f11.CompareTo(f2) <= 0) { fechas = fechas + nodo.claves[k - 1].nofactura + "," + nodo.claves[k - 1].fecha + "," + nodo.claves[k - 1].idtransaccion + "," + nodo.claves[k - 1].nombreUsuario + ";"; contador++; } } for (k = 0; k <= nodo.cuentas; k++) { recorrerArbol(nodo.ramas[k], fecha1, fecha2); } } } } catch (Exception ee) { } }
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 bool vacio(Pagina raiz) { return(raiz == null || raiz.cuentas == 0); }