public void graficarArbol(String path) { //StreamWriter fichero = null; try { //fichero = new StreamWriter("ABBTreeConLista.dot"); fichero.Write("digraph grafica{\n" + "rankdir=TB;\n" + "node [shape = record, style=filled, fillcolor=burlywood2];\n"); //Inicia cuerpo del grafo fichero.Write(RaizABB.getNicknamee() + " [label=\"<f0> | <f1>" + RaizABB.getNicknamee() + " |<f2>\"];"); fichero.Write("\n"); //fichero.Close(); grafoArbol(RaizABB); fichero.Write("}"); //fichero.Close(); } catch (Exception e) { Console.Error.WriteLine("Error al escribir en el archivos dot" + e.ToString()); } finally { try { if (null != fichero) { fichero.Close(); } } catch (Exception e2) { Console.Error.WriteLine("Error al cerrar el archivo .dot" + e2.ToString()); } } try { ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files (x86)\\Graphviz\\bin\\dot.exe"); startInfo.Arguments = "dot -Tpng -o" + path + " Arbol_Usuarios.dot"; Process.Start(startInfo); Process.Start("Arbol_Usuarios.png"); } catch (Exception ex) { Console.Error.WriteLine("Error al generar la imagen para el archivo Arbol_Usuarios.dot" + ex.ToString()); } }
private void Rlista(NodoArbolABB actual) { if (actual != null) { if (actual.getListaJuegos().primero != null) { NodoListaDoble actual2 = actual.getListaJuegos().primero; while (actual2 != null) { if (actual.getNicknamee() == actual2.getNickname()) { if (contador == 0) { fichero.Write(actual2.getNickname() + ":f1 -> " + "\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"[dir=both];"); fichero.Write("\n"); contador = 1; } else { fichero.Write("\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getAnterior().getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"" + "->" + "\"" + "Usuario: " + actual2.getNickname() + ", \n Oponente: " + actual2.getNicknameOponente() + ", \n Unidades Desplegadas: " + actual2.getUnidadesDesplegadas().ToString() + ", \n Unidades Sobrevivientes: " + actual2.getUnidadesSobrevivientes().ToString() + ", \n Unidades Destruidas: " + actual2.getUnidadesDestruidas().ToString() + ", \n Victoria: " + actual2.getEstadoVictoria().ToString() + "\"[dir=both];"); fichero.Write("\n"); } //Console.WriteLine(actual2.getNickname() + " Oponente: " + actual2.getNicknameOponente()); actual2 = actual2.getSiguiente(); } else { actual2 = actual2.getSiguiente(); } } contador = 0; } } }
private void inorden(NodoArbolABB a) { if (a == null) { return; } inorden(a.getIzquierdo()); Console.Write(a.getNicknamee() + ","); inorden(a.getDerecho()); }
private void grafoArbol(NodoArbolABB actual) { //StreamWriter fichero = new StreamWriter("ABBTreeConLista.dot"); if (actual.getIzquierdo() != null) { fichero.Write(actual.getIzquierdo().getNicknamee() + " [label=\"<f0> |<f1>" + actual.getIzquierdo().getNicknamee() + " |<f2>\"];"); fichero.Write("\n"); fichero.Write(actual.getNicknamee() + ":f0 -> " + actual.getIzquierdo().getNicknamee() + ":f1;"); fichero.Write("\n"); Rlista(actual.getIzquierdo()); //Console.WriteLine(graflista(actual.getIzquierdo())); grafoArbol(actual.getIzquierdo()); } if (actual.getDerecho() != null) { fichero.Write(actual.getDerecho().getNicknamee() + " [label=\"<f0> |<f1>" + actual.getDerecho().getNicknamee() + " |<f2>\"];"); fichero.Write("\n"); fichero.Write(actual.getNicknamee() + ":f2 -> " + actual.getDerecho().getNicknamee() + ":f1;"); fichero.Write("\n"); Rlista(actual.getDerecho()); //Console.WriteLine(graflista(actual.getIzquierdo())); grafoArbol(actual.getDerecho()); } }
private void Reemplazar(NodoArbolABB raiz, IComparable usuario, String contra, String Correo, int IndicadorConexion) { if (raiz != null) { if (raiz.getNicknamee() == usuario.ToString()) { //Console.WriteLine("datos encontrados"); raiz.EliminarNodo(raiz, usuario, contra, Correo, IndicadorConexion); } else if (usuario.CompareTo(raiz.getNickname()) <= 0) { Reemplazar(raiz.getIzquierdo(), usuario, contra, Correo, IndicadorConexion); } else { Reemplazar(raiz.getDerecho(), usuario, contra, Correo, IndicadorConexion); } } }
private void inorden(NodoArbolABB a) { if (a == null) { return; } inorden(a.getIzquierdo()); Console.Write(a.getNicknamee() + ","); //if (a.getPadre() == null) //{ // Console.WriteLine(" {//} "+a.getNickname().ToString() + ","); //} //else //{ // Console.WriteLine(a.getNickname().ToString() + " " + a.getPadre().getNickname().ToString() + " , "); //} inorden(a.getDerecho()); }