예제 #1
0
        void GraficarEncabezadosColumna(EncabezadosColumna encolum, int nivel)
        {
            if (encolum.GetPrimero() != null)
            {
                int            cont     = 0;
                NodoEncabezado auxiliar = encolum.GetPrimero();
                sw.Write("{rank = same\n");
                while (auxiliar != null)
                {
                    sw.Write("ec" + auxiliar.Get_Id() + nivel + "[label = \"Numero de columna: " + (char)auxiliar.Get_Id() + "\"];\n");
                    auxiliar = auxiliar.siguiente;
                    cont++;
                }
                sw.Write("}\n");

                auxiliar = encolum.GetPrimero();
                while (auxiliar.siguiente != null)
                {
                    sw.Write("ec" + auxiliar.Get_Id() + nivel + "->ec" + auxiliar.siguiente.Get_Id() + nivel + "\n");
                    sw.Write("ec" + auxiliar.Get_Id() + nivel + "->c" + auxiliar.cont.fila + auxiliar.cont.columna + nivel + "\n");
                    auxiliar = auxiliar.siguiente;
                }
                sw.Write("ec" + auxiliar.Get_Id() + nivel + "->c" + auxiliar.cont.fila + auxiliar.cont.columna + nivel + "\n");
            }
        }
예제 #2
0
        void GraficarContenido(EncabezadoFila enfila, EncabezadosColumna encol, int nivel)
        {
            NodoEncabezado auxiliar = enfila.GetPrimero();

            while (auxiliar != null)
            {
                NodoMatriz auxiliarcontenido = auxiliar.cont;
                while (auxiliarcontenido.siguiente != null)
                {
                    sw.Write("c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel + "->c" + auxiliarcontenido.fila + auxiliarcontenido.siguiente.columna + nivel + "\n");
                    auxiliarcontenido = auxiliarcontenido.siguiente;
                }
                while (auxiliarcontenido.anterior != null)
                {
                    sw.Write("c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel + "->c" + auxiliarcontenido.fila + auxiliarcontenido.anterior.columna + nivel + "\n");
                    auxiliarcontenido = auxiliarcontenido.anterior;
                }
                auxiliar = auxiliar.siguiente;
            }
            //relaciones verticales
            auxiliar = encol.GetPrimero();
            while (auxiliar != null)
            {
                NodoMatriz auxiliarcontenido = auxiliar.cont;
                while (auxiliarcontenido.abajo != null)
                {
                    sw.Write("c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel + "->c" + auxiliarcontenido.abajo.fila + auxiliarcontenido.columna + nivel + "\n");
                    auxiliarcontenido = auxiliarcontenido.abajo;
                }

                while (auxiliarcontenido.arriba != null)
                {
                    sw.Write("c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel + "->c" + auxiliarcontenido.arriba.fila + auxiliarcontenido.columna + nivel + "\n");
                    auxiliarcontenido = auxiliarcontenido.arriba;
                }
                auxiliar = auxiliar.siguiente;
            }
        }
예제 #3
0
        void GraficarEncabezadosColumnaVivos(EncabezadosColumna encolum, int nivel)
        {
            if (encolum.GetPrimero() != null)
            {
                int            cont     = 0;
                NodoEncabezado auxiliar = encolum.GetPrimero();
                sw.Write("{rank = same\n");
                while (auxiliar != null)
                {
                    NodoMatriz auxiliarcontenido = auxiliar.cont;
                    while (auxiliarcontenido != null)
                    {
                        if (auxiliarcontenido.vidad != 0)
                        {
                            sw.WriteLine("ec" + auxiliar.Get_Id() + nivel + "[label = \"Numero de columna: " + (char)auxiliar.Get_Id() + "\"];\n");
                            break;
                        }
                        auxiliarcontenido = auxiliarcontenido.abajo;
                    }

                    auxiliar = auxiliar.siguiente;
                    cont++;
                }
                sw.Write("}\n");

                auxiliar = encolum.GetPrimero();
                string anterior = "";
                while (auxiliar != null)
                {
                    NodoMatriz auxiliarcontenido = auxiliar.cont;
                    while (auxiliarcontenido != null)
                    {
                        if (auxiliarcontenido.vidad != 0)
                        {
                            if (anterior == "")
                            {
                                anterior = "ec" + auxiliar.Get_Id() + nivel;
                            }
                            else
                            {
                                sw.WriteLine(anterior + "->ec" + auxiliar.Get_Id() + nivel);
                                anterior = "ec" + auxiliar.Get_Id() + nivel;
                            }
                            break;
                        }
                        auxiliarcontenido = auxiliarcontenido.abajo;
                    }
                    auxiliar = auxiliar.siguiente;
                }

                auxiliar = encolum.GetPrimero();
                anterior = "";
                while (auxiliar != null)
                {
                    NodoMatriz auxiliarcontenido = auxiliar.cont;
                    anterior = "";
                    while (auxiliarcontenido != null)
                    {
                        if (auxiliarcontenido.vidad != 0)
                        {
                            if (anterior == "")
                            {
                                sw.WriteLine("ec" + auxiliar.Get_Id() + nivel + "->c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel);
                                anterior = "c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel;
                            }
                            else
                            {
                                sw.WriteLine(anterior + "->c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel);
                                sw.WriteLine("c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel + "->" + anterior);
                                anterior = "c" + auxiliarcontenido.fila + auxiliarcontenido.columna + nivel;
                            }
                        }
                        auxiliarcontenido = auxiliarcontenido.abajo;
                    }

                    auxiliar = auxiliar.siguiente;
                }
            }
        }