public void Push(Matriz_Ortogonal matriz)
        {
            Nodo nodo = new Nodo(matriz);

            nodo.siguiente = cima;
            cima           = nodo;
        }
        public int getValorMatriz(Matriz_Ortogonal matriz)
        {
            int valor = 0;

            for (int i = 0; i < matriz.dimension_x; i++)
            {
                for (int j = 0; j < matriz.dimension_y; j++)
                {
                    Dato numero = matriz.getValorNodo(i, j);
                    valor = valor + numero.dato;
                }
            }

            return(valor);
        }
        public void encolar(Matriz_Ortogonal matriz)
        {
            Nodo nuevoNodo = new Nodo(matriz);

            if (cabeza == null)
            {
                cabeza = nuevoNodo;
            }
            else
            {
                ultimo.siguiente = nuevoNodo;
            }

            ultimo = nuevoNodo;
        }
 public Nodo(Matriz_Ortogonal matriz)
 {
     this.matriz = matriz;
 }
示例#5
0
        public void deserealizeJSON(string strJson)
        {
            var json = JsonConvert.DeserializeObject <Json>(strJson);

            //Matrices de la Pila
            foreach (var item in json.archivo.pila.matrices.matriz)

            {
                int dimension = (int.Parse(item.size_x) * int.Parse(item.size_y));
                Matriz_Ortogonal nuevaMatriz = new Matriz_Ortogonal(dimension);
                nuevaMatriz.dimension_x = int.Parse(item.size_x);
                nuevaMatriz.dimension_y = int.Parse(item.size_y);
                nuevaMatriz.CrearMatriz(dimension);

                foreach (var n in item.valores.valor)
                {
                    Dato nuevodato = new Dato(int.Parse(n.dato));
                    nuevaMatriz.setValor(int.Parse(n.pos_y), int.Parse(n.pos_x), nuevodato);
                }

                //Llenar de 0 los espacios vacios
                for (int i = 0; i <= (int.Parse(item.size_x)); i++)
                {
                    for (int j = 0; j < (int.Parse(item.size_y)); j++)
                    {
                        if (nuevaMatriz.getValorNodo(i, j) == null)
                        {
                            Dato cero = new Dato(0);
                            nuevaMatriz.setValor(i, j, cero);
                        }
                    }
                }

                pila.Push(nuevaMatriz);
            }

            //Matrices de la Cola

            foreach (var item in json.archivo.cola.matrices.matriz)
            {
                int dimension2 = (int.Parse(item.size_x) * int.Parse(item.size_y));

                Matriz_Ortogonal nuevaMatriz2 = new Matriz_Ortogonal(dimension2);
                nuevaMatriz2.dimension_x = int.Parse(item.size_x);
                nuevaMatriz2.dimension_y = int.Parse(item.size_y);
                nuevaMatriz2.CrearMatriz(dimension2);

                foreach (var i in item.valores.valor)
                {
                    Dato nuevodato2 = new Dato(int.Parse(i.dato));
                    nuevaMatriz2.setValor(int.Parse(i.pos_y), int.Parse(i.pos_x), nuevodato2);
                }
                //Llenar de 0 los espacios vacios
                for (int i = 0; i <= (int.Parse(item.size_x)); i++)
                {
                    for (int j = 0; j < (int.Parse(item.size_y)); j++)
                    {
                        if (nuevaMatriz2.getValorNodo(i, j) == null)
                        {
                            Dato cero = new Dato(0);
                            nuevaMatriz2.setValor(i, j, cero);
                        }
                    }
                }

                cola.encolar(nuevaMatriz2);
            }
        }
示例#6
0
 private void button1_Click(object sender, EventArgs e)
 {
     Matriz_Ortogonal matriz1 = cola.Desencolar();
     Matriz_Ortogonal matriz2 = pila.Pop();
 }