예제 #1
0
        public static List <int> armazenar(List <int> l1, List <int> l2, string caminhoArquivoEscrita, string nomeArquivo, int posicaoEscrita)
        {
            // Console.WriteLine("Escrcita em : " + caminhoArquivoEscrita + nomeArquivo);
            //ArquivoController.escreverArquivoPosicao(caminhoArquivoEscrita, nomeArquivo, posicaoEscrita, new byte[2]);
            List <int> listaArmazenar = new List <int>();
            List <int> listaMaior     = new List <int>();

            int i = 0;
            int j = 0;

            try
            {
                while ((l1.Count != 0) && (l2.Count != 0))
                {
                    // p++;

                    if (l1[i] == l2[j])
                    {
                        //Console.WriteLine("l1 == l2");
                        listaArmazenar.Add(l1[i]);
                        listaArmazenar.Add(l2[j]);
                        l1.RemoveAt(i);
                        l2.RemoveAt(j);
                        //i++;
                        //j++;
                    }
                    else if (l1[i] > l2[j])
                    {
                        //Console.WriteLine("l1 > l2");

                        listaArmazenar.Add(l2[j]);

                        l2.RemoveAt(j);
                        //j++;
                        //i++;
                    }
                    else if (l1[i] < l2[j])
                    {
                        //Console.WriteLine("l1 < l2");
                        listaArmazenar.Add(l1[i]);
                        l1.RemoveAt(i);

                        //i++;
                        // j++;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("pos i: " + i);
                Console.WriteLine("pos j: " + j);
                Console.WriteLine("ERROR: " + e.Message);
            }

            //  Console.WriteLine("tamanho de bytes: " + getByteArray(listaArmazenar));
            ArquivoController.escreverArquivoPosicao(caminhoArquivoEscrita, nomeArquivo, posicaoEscrita, listaArmazenar.ToArray());

            if (l1.Count == 0 && l2.Count == 0)
            {
                //  Console.WriteLine("lista 1 vazia");
                // Console.WriteLine("lista 2 vazia");
                listaMaior = l1;
                // Console.WriteLine("Pilha Iguais");
                //l1 = getListN(3);
                //l2 = getListN(3);
                //armazenar(l1, l2);
                // break;
            }

            if (l1.Count == 0 && l2.Count > 0)
            {
                // Console.WriteLine("lista 1 vazia");
                //  Console.WriteLine("lista 2 cheia");
                listaMaior = l2;
                //Console.WriteLine("Pilha B maior");
                //l1 = getListN(3);

                // armazenar(l1, l2);
            }
            else if (l1.Count > 0 && l2.Count == 0)
            {
                // Console.WriteLine("lista 1 cheia");
                // Console.WriteLine("lista 2 vazia");
                listaMaior = l1;

                //Console.WriteLine("Pilha A maior");
                // l2 = getListN(3);
                // armazenar(l1, l2);
            }

            /*  foreach (var item in listR)
             * {
             *    Console.WriteLine("numero: " + item);
             * }
             */

            return(listaMaior);
        }
예제 #2
0
 public static void armazenarListaResultado(List <int> listaResultado, string caminhoArquivoEscrita, string nomeArquivo, int posicaoEscrita)
 {
     ArquivoController.escreverArquivoPosicao(caminhoArquivoEscrita, nomeArquivo, posicaoEscrita, listaResultado.ToArray());
 }