Esempio n. 1
0
 public void eliminar(string fila)
 {
     if (cabeza != null)
     {
         Cabecera ant = null;
         Cabecera aux = cabeza;
         while (aux != null)
         {
             if (aux.titulo != fila)
             {
                 ant = aux;
                 aux = aux.siguiente;
             }
             else
             {
                 if (ant == null)
                 {
                     cabeza        = cabeza.siguiente;
                     aux.siguiente = null;
                     aux           = cabeza;
                 }
                 else
                 {
                     ant.siguiente = aux.siguiente;
                     aux.siguiente = null;
                     aux           = ant.siguiente;
                     break;
                 }
             }
         }
     }
 }
Esempio n. 2
0
 public Cabecera(string titulo)
 {
     this.titulo     = titulo;
     apuntadorMatriz = null;
     siguiente       = null;
     anterior        = null;
 }
Esempio n. 3
0
        public Cabecera buscarPosicionColumna(string columna)
        {
            int      valColumna = getValorColumna(columna);
            Cabecera aux        = columnas.cabeza;

            if (aux.filaCabecera > getValorColumna(columna))     //si la primera cabecera es mayor devuelve null
            {
                return(null);
            }
            else
            {
                while (aux != null)                             //si no busca
                {
                    if ((aux.filaCabecera < valColumna) && aux.siguiente != null && (aux.siguiente.filaCabecera < valColumna))
                    {
                        aux = aux.siguiente;
                    }
                    else
                    {
                        return(aux.anterior);
                    }
                }
            }
            return(null);
        }
Esempio n. 4
0
 public bool existePosicion(string fila, string columna)
 {
     if (!filas.isEmpty())
     {
         Cabecera aux = filas.cabeza;            //recorriendo cabeceras filas
         while (aux != null)
         {
             if (aux.titulo == fila)
             {
                 NodoMatriz auxNodo = aux.apuntadorMatriz;
                 while (auxNodo != null)
                 {
                     //buscar la columna
                     if (auxNodo.cabeceraCol.titulo == columna)
                     {
                         return(true);
                     }
                     auxNodo = auxNodo.derecha;
                 }
             }
             aux = aux.siguiente;
         }
     }
     return(false);
 }
Esempio n. 5
0
 public Cabecera(string titulo, int intFila)
 {
     this.titulo       = titulo;
     this.filaCabecera = intFila;
     apuntadorMatriz   = null;
     siguiente         = null;
     anterior          = null;
 }
Esempio n. 6
0
        public void insertarInicio(string fila, int intFila)
        {
            Cabecera nuevo = new Cabecera(fila, intFila);

            if (isEmpty())
            {
                cabeza = nuevo;
            }
            else
            {
                Cabecera aux = cabeza;
                cabeza           = nuevo;
                cabeza.siguiente = aux;
            }
        }
Esempio n. 7
0
 public NodoMatriz(string unidad, int movimiento, int alcance, int dano, int vida)
 {
     this.unidad     = unidad;
     this.movimiento = movimiento;
     this.alcance    = alcance;
     this.dano       = dano;
     this.vida       = vida;
     arriba          = null;
     abajo           = null;
     derecha         = null;
     izquierda       = null;
     top             = null;
     bot             = null;
     cabeceraFila    = cabeceraCol = null;
 }
Esempio n. 8
0
 public Cabecera buscar(string fila)
 {
     if (cabeza != null)
     {
         Cabecera aux = cabeza;
         while (aux != null)
         {
             if (aux.titulo == fila)
             {
                 return(aux);
             }
             aux = aux.siguiente;
         }
     }
     return(null);
 }
Esempio n. 9
0
 public void insertarEntre(Cabecera primero, Cabecera segundo, Cabecera nuevo)
 {
     if (segundo != null)
     {
         primero.siguiente = nuevo;
         nuevo.siguiente   = segundo;
         nuevo.anterior    = primero;
         segundo.anterior  = nuevo;
     }
     else
     {
         primero.siguiente = nuevo;
         nuevo.siguiente   = segundo;
         nuevo.anterior    = primero;
     }
 }
Esempio n. 10
0
 public void insertandoEntreNodosMatrizFila(Cabecera filaActual, Cabecera columnaActual, NodoMatriz nuevo1, int fila, string columna)
 {
     if (isEmptyFilaNodoMatriz(filaActual))     //1: SI esta vacia la filaActual
     {
         filaActual.apuntadorMatriz = nuevo1;
         nuevo1.cabeceraFila        = filaActual;
         //unir a COLUMNA
         //1.1: SI esta vacia la  columna actual
         //1.2: NO esta vacia
         //va en cabeza y la cabeza actual esta ocupada
         //no va en Cabeza va entre nodos; ya sea un nodo y un null
         UnirAColumna(columnaActual, nuevo1, fila);
     }
     else
     {                                           //2: NO esta vacia la fila actual
         NodoMatriz nodoAnteriorFila = buscarPosicionNodo(filaActual.apuntadorMatriz, columna);
         //2.1: va en cabeza de la fila y la cabeza actual esta ocupada
         NodoMatriz auxFila;
         if (nodoAnteriorFila == null)
         {
             auxFila = filaActual.apuntadorMatriz;
             filaActual.apuntadorMatriz = nuevo1;
             nuevo1.cabeceraFila        = filaActual;
             nuevo1.derecha             = auxFila;
             auxFila.izquierda          = nuevo1;
             UnirAColumna(columnaActual, nuevo1, fila);
         }
         else
         {//2.2: No va en cabeza, Va entre Nodos
             auxFila = nodoAnteriorFila.derecha;
             if (auxFila != null)
             {
                 nodoAnteriorFila.derecha = nuevo1;
                 nuevo1.izquierda         = nodoAnteriorFila;
                 nuevo1.derecha           = auxFila;
                 auxFila.izquierda        = nuevo1;
             }
             else
             {
                 nodoAnteriorFila.derecha = nuevo1;
                 nuevo1.izquierda         = nodoAnteriorFila;
                 nuevo1.derecha           = auxFila;
             }
             UnirAColumna(columnaActual, nuevo1, fila);
         }
     }
 }
Esempio n. 11
0
        public void eliminarPrueba(string columna)
        {
            Cabecera aux = cabeza;

            if (aux.titulo == columna)
            {
                cabeza = aux.siguiente;
                aux    = null;
            }
            else
            {
                while (aux.siguiente != null)
                {
                    aux = aux.siguiente;
                }
                aux = null;
            }
        }
Esempio n. 12
0
        public void insertar(string fila, int intFila)
        {
            Cabecera nuevo = new Cabecera(fila, intFila);

            if (cabeza == null)
            {
                cabeza = nuevo;
            }
            else
            {
                Cabecera aux = cabeza;
                while (aux.siguiente != null)
                {
                    aux = aux.siguiente;
                }
                aux.siguiente  = nuevo;
                nuevo.anterior = aux;
            }
        }
Esempio n. 13
0
 public void UnirAColumna(Cabecera columnaActual, NodoMatriz nuevo1, int fila)
 {
     if (isEmptyColNodoMatriz(columnaActual))            //1.1: SI esta vacia la  columna actual
     {
         columnaActual.apuntadorMatriz = nuevo1;
         nuevo1.cabeceraCol            = columnaActual;
     }
     else
     {                                                   //1.2: NO esta vacia
         NodoMatriz nodoAnteriorColumna = buscarPosicionNodoColumna(columnaActual.apuntadorMatriz, fila);
         if (nodoAnteriorColumna == null)                //va en cabeza y la cabeza actual esta ocupada
         {
             insertarEntreNodosMatrizColumna(columnaActual.apuntadorMatriz, columnaActual.apuntadorMatriz, nuevo1);
         }
         else
         {                                                       //no va en Cabeza va entre nodos; ya sea un nodo y un null
             insertarEntreNodosMatrizColumna(nodoAnteriorColumna, nodoAnteriorColumna.abajo, nuevo1);
         }
     }
 }
Esempio n. 14
0
        public Cabecera buscarPosicionFila(int fila)
        {
            Cabecera aux = filas.cabeza;

            if (aux.filaCabecera > fila)
            {
                return(null);
            }
            else
            {
                while (aux != null)
                {
                    if ((aux.filaCabecera < fila) && aux.siguiente != null && (aux.siguiente.filaCabecera < fila))
                    {
                        aux = aux.siguiente;
                    }
                    else
                    {
                        return(aux.anterior);
                    }
                }
            }
            return(null);
        }
Esempio n. 15
0
 public ListaFilas()
 {
     cabeza = null;
 }
Esempio n. 16
0
        public bool insertarEnMatriz(string unidad, int movimiento, int alcance, int dano, int vida, string columna, int fila)
        {
            //verificando que este vacia la matriz
            if (filas.isEmpty())
            {
                filas.insertar(fila.ToString(), fila);
                columnas.insertar(columna, getValorColumna(columna));

                //insertando directo a tu corazon xD
                NodoMatriz nuevo = new NodoMatriz(unidad, movimiento, alcance, dano, vida);
                filas.cabeza.apuntadorMatriz    = nuevo;    //insertando en fila
                nuevo.cabeceraFila              = filas.cabeza;
                columnas.cabeza.apuntadorMatriz = nuevo;    //insertando en columna
                nuevo.cabeceraCol = columnas.cabeza;
            }
            else
            {
                if (!existePosicion(fila.ToString(), columna))  //si no existe la posicion
                {
                    if (!filas.Existe(fila.ToString()))         //si no existe la fila
                    {
                        //insertar Filas

                        Cabecera anterior = buscarPosicionFila(fila); //devueleve el anterior del futuro nuevo nodo

                        if (anterior == null)                         //debe ir en cabeza
                        {
                            filas.insertarInicio(fila.ToString(), fila);
                        }
                        else
                        {                                               //si no va entre nodos
                            filas.insertarEntre(anterior, anterior.siguiente, new Cabecera(fila.ToString(), fila));
                        }



                        // si no Existe la Columna
                        Cabecera anterior2 = buscarPosicionColumna(columna);
                        if (!columnas.Existe(columna))
                        {
                            if (anterior2 == null)
                            {
                                columnas.insertarInicio(columna, getValorColumna(columna));
                            }
                            else
                            {
                                columnas.insertarEntre(anterior2, anterior2.siguiente, new Cabecera(columna, getValorColumna(columna)));
                            }
                        }
                    }
                    //si EXISTE INSERTANDO NODO!
                    NodoMatriz nuevo1        = new NodoMatriz(unidad, movimiento, alcance, dano, vida);
                    Cabecera   filaActual    = filas.buscar(fila.ToString());
                    Cabecera   columnaActual = columnas.buscar(columna);

                    //LLAmar a mentodo entrefilasnodoMatriz    ESto si funciona
                    insertandoEntreNodosMatrizFila(filaActual, columnaActual, nuevo1, fila, columna);
                    return(true);
                }
                return(false);
            }
            return(false);
        }
Esempio n. 17
0
 //Revisando si la las filas de los nodos estan vacias
 public bool isEmptyFilaNodoMatriz(Cabecera filaActual)
 {
     return(filaActual.apuntadorMatriz == null);
 }
Esempio n. 18
0
 public bool isEmptyColNodoMatriz(Cabecera colActual)
 {
     return(colActual.apuntadorMatriz == null);
 }
Esempio n. 19
0
 public void insertarNodo(NodoMatriz nuevo, Cabecera fila, Cabecera columna)
 {
 }
Esempio n. 20
0
 public ListaColumnas()
 {
     cabeza = null;
 }