public Matriz_ crearMatriz(int tamX, int tamY)
        {
            int contadorX = 1, contadorY = 0;

            x = tamX;
            y = tamY;
            nodoMatriz nodoAux  = raiz;
            nodoMatriz tempAuxX = raiz;
            nodoMatriz auxiliar = raiz;

            while (contadorY < tamY)
            {
                while (contadorX < tamX)
                {
                    nodoMatriz nuevoNodo = new nodoMatriz(0, contadorX, contadorY);
                    tempAuxX.right = nuevoNodo;
                    nuevoNodo.left = tempAuxX;
                    tempAuxX       = nuevoNodo;
                    if (contadorY > 0)
                    {
                        auxiliar      = auxiliar.right;
                        nuevoNodo.up  = auxiliar;
                        auxiliar.down = nuevoNodo;
                    }
                    //  MessageBox.Show("Insertando X: " + Convert.ToString(contadorX) + ", Y: " + Convert.ToString(contadorY));
                    contadorX++;
                }

                if ((contadorY + 1) != tamY)
                {
                    contadorX = 0;
                    contadorY++;
                    auxiliar = nodoAux;
                    nodoMatriz nuevoY = new nodoMatriz(0, contadorX, contadorY);
                    nodoAux.down = nuevoY;
                    nuevoY.up    = nodoAux;
                    nodoAux      = nuevoY;
                    tempAuxX     = nodoAux;
                    //  MessageBox.Show("Insertando X: " + Convert.ToString(contadorX) + ", Y: " + Convert.ToString(contadorY));
                    contadorX = 1;
                }
                else
                {
                    contadorY++;
                }
            }
            return(this);
        }
        public int getValor()
        {
            nodoMatriz auxX  = raiz;
            nodoMatriz auxY  = raiz;
            int        valor = 0;

            for (int i = 0; i < y; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    valor = valor + auxX.numero;
                    auxX  = auxX.right;
                }
                auxY = auxY.down;
                auxX = auxY;
            }
            return(valor);
        }
        public void asignar(int x, int y, int dato)
        {
            nodoMatriz aux   = raiz;
            int        contx = 0;
            int        conty = 0;

            while (conty < y)
            {
                while (contx < x)
                {
                    aux = aux.right;
                    contx++;
                }
                aux = aux.down;
                conty++;
            }
            aux.numero = dato;
        }
        public nodoMatriz buscar(int fila, int columna)
        {
            nodoMatriz auxX = raiz;
            nodoMatriz auxY = raiz;


            for (int i = 0; i < fila; i++)
            {
                for (int j = 0; j < columna; j++)
                {
                    auxX = auxX.right;
                    auxY = auxX;
                }
                auxY = auxY.down;
            }


            return(auxY);
        }
        public int getValor(int fila, int columna)
        {
            nodoMatriz cabeza = raiz;

            while (cabeza.up != null)
            {
                cabeza = cabeza.up;
            }
            for (int i = 0; i < fila; i++)
            {
                cabeza = cabeza.down;
            }

            for (int i = 0; i < columna; i++)
            {
                cabeza = cabeza.right;
            }
            return(cabeza.numero);
        }