Ejemplo n.º 1
0
 public bool EquivaleA(Arvore <Dado> outraArvore)
 {
     /* . ambas são vazias
      * ou
      * .. Info(A) = Info(B) e
      * ... Esq(A) eq Esq(B) e Dir(A) eq Dir(B)
      */
     return(Eq(this.Raiz, outraArvore.Raiz));
 }
Ejemplo n.º 2
0
 private void btnClear_Click(object sender, EventArgs e)
 {
     this.dGVData.Rows.Clear();
     Pilha       = new CPilha(Tamanho);
     Fila        = new CFila(Tamanho);
     Lista       = new CLista(Tamanho);
     Arvore      = new Arvore(Tamanho);
     Hash        = new TabelaHash(Tamanho);
     this.indice = 0;
 }
Ejemplo n.º 3
0
        //string filePath; string para pegar os arquivos a partir da pasta raiz do projeto

        public FrmCaminhos()
        {
            InitializeComponent();

            cidades = new Arvore <Cidade>();

            /*proporcaoAltura = pbMapa.Height / 2048m;
            *  proporcaoLargura = pbMapa.Width / 4096m;*/
            proporcaoAltura  = pbMapa.Height / pbMapa.Image.Height;
            proporcaoLargura = pbMapa.Width / pbMapa.Image.Width;
        }
Ejemplo n.º 4
0
        public void InserirMultiplosNosParaDividir()
        {
            var btree = new Arvore <int, int>(T);

            for (int i = 0; i < this.testChaveData.Length; i++)
            {
                this.InserirDadosDeTesteEValidarAArvore(btree, i);
            }

            Assert.AreEqual(2, btree.Altura);
        }
Ejemplo n.º 5
0
        public void CriarArvoreB()
        {
            var btree = new Arvore <int, int>(T);

            No <int, int> root = btree.Root;

            Assert.IsNotNull(root);
            Assert.IsNotNull(root.Entradas);
            Assert.IsNotNull(root.Filhos);
            Assert.AreEqual(0, root.Entradas.Count);
            Assert.AreEqual(0, root.Filhos.Count);
        }
Ejemplo n.º 6
0
        public void CriarArvore(FleuryNode nodoA)
        {
            FleuryNode nodoPai = new FleuryNode(nodoA.Name);

            Arvore.Add(nodoPai);

            foreach (var item in nodoA.Adjacencias)
            {
                if (!Arvore.Any(c => c.Name.Equals(item.Name)))
                {
                    FleuryNode nodoFilho = new FleuryNode(item.Name);
                    nodoPai.Adjacencias.Add(nodoFilho);
                    CriarArvore(item);
                }
            }
        }
Ejemplo n.º 7
0
        public static void EX1()
        {
            Arvore arvore = new Arvore(5);

            arvore.Add(2);
            arvore.Add(7);
            arvore.Add(23);
            arvore.Add(1);
            arvore.Add(15);
            arvore.Add(14);
            arvore.Add(12);
            arvore.Add(12);


            arvore.AceitaVisitante(new ExibirEmOrdemVisitor());
            arvore.AceitaVisitante(new ExibirParesVisitor());
        }
Ejemplo n.º 8
0
        public animalActions(String nomeAnimal)
        {
            InitializeComponent();
            if (nomeAnimal != "")
            {
            }

            selectedAnimal = Arvore.Pesquisar(nomeAnimal);
            lbAnimais.Items.Add(selectedAnimal);
            actionList = new Lista();
            OrganizaAcoes();
            lbTitulo.Content = selectedAnimal.GetType().GetTypeInfo().Name + " - " + selectedAnimal.Nome;

            foreach (Object o in actionList)
            {
                cboxListaAcoes.Items.Add(o);
            }
        }
        public static Arvore Remover(Arvore aux, int num)
        {
            Arvore p, p2;

            if (aux.num == num)
            {
                if (aux.esq == aux.dir)
                {
                    //o elemento a ser removido não tem filhos
                    return(null);
                }
                else if (aux.esq == null)
                {
                    //o elemento a ser removido não tem filho para à esquerda
                    return(aux.dir);
                }
                else if (aux.dir == null)
                {
                    // o elemento a ser removido não tem filho a esquerda
                    return(aux.esq);
                }
                else
                {
                    // o elemento a ser removido tem filho para ambos os lados
                    p2 = aux.dir;
                    p  = aux.dir;
                    while (p.esq != null)
                    {
                        p = p.esq;
                    }
                    p.esq = aux.esq;
                    return(p2);
                }
            }
            else if (aux.num < num)
            {
                aux.dir = Remover(aux.dir, num);
            }
            else
            {
                aux.esq = Remover(aux.esq, num);
            }
            return(aux);
        }
Ejemplo n.º 10
0
        public ActionResult GetArvoresById(long IdArvore)
        {
            //Lista de Arvores do Banco de Dados.
            //Tranforma a lista de arvores retornadas do banco para um objeto que javascript entende.
            //envia a lista de arvores para a javascript
            Arvore     arvore     = UnitOfWork.ArvoreRepository.Get(a => a.IdArvore == IdArvore && a.DataExclusao == null, includeProperties: "Cidade").FirstOrDefault();
            ArvoreView arvoreview = new ArvoreView();

            if (arvore != null)
            {
                arvoreview.IdArvore = arvore.IdArvore;
                arvoreview.Porte    = arvore.Porte;

                ConverterUtmToLatLon converter = new ConverterUtmToLatLon(arvore.Cidade.Datum, arvore.Cidade.NorteOuSul, arvore.Cidade.Zona);
                LatLon _coor = converter.Convert(arvore.X, arvore.Y);
                if (arvore.Latitude == 0 && arvore.Longitude == 0)
                {
                    arvoreview.Latitude  = _coor.Lat;
                    arvoreview.Longitude = _coor.Lon;
                }
                else
                {
                    arvoreview.Latitude  = arvore.Latitude;
                    arvoreview.Longitude = arvore.Longitude;
                }


                foreach (FotoArvore foto_corrente in UnitOfWork.FotoArvoreRepository.Get(f => f.IdArvore == arvore.IdArvore && f.DataExclusao == null).ToList())
                {
                    arvoreview.Fotos.Add(new FotoArvoreView()
                    {
                        DataFoto     = string.Format("{0:yyyy-MM-dd}", foto_corrente.DataFoto),
                        IdFotoArvore = foto_corrente.IdFotoArvore,
                        NumeroFoto   = foto_corrente.NumeroFoto
                    });
                }
            }

            return(Json(new ResponseView()
            {
                Status = Status.OK, Result = arvoreview
            }, JsonRequestBehavior.AllowGet));
        }
 public static Arvore Inserir(Arvore aux, int num)
 {
     if (aux == null)
     {
         aux     = new Arvore();
         aux.num = num;
         aux.esq = null;
         aux.dir = null;
     }
     else if (num < aux.num)
     {
         aux.esq = Inserir(aux.esq, num);
     }
     else
     {
         aux.dir = Inserir(aux.dir, num);
     }
     return(aux);
 }
Ejemplo n.º 12
0
        public void TestaArvore()
        {
            Arvore root = new Arvore(1);

            root.left                       = new Arvore(4);
            root.right                      = new Arvore(7);
            root.left.left                  = new Arvore(10);
            root.left.left.left             = new Arvore(8);
            root.left.right                 = new Arvore(2);
            root.left.right.left            = new Arvore(12);
            root.left.right.left.right      = new Arvore(13);
            root.left.right.left.right.left = new Arvore(9);
            root.right.left                 = new Arvore(3);
            root.right.right                = new Arvore(11);
            root.right.right.left           = new Arvore(6);
            root.right.right.right          = new Arvore(5);

            Funcoes.caminho_arvore(root, 9);
        }
Ejemplo n.º 13
0
        private List <int> buscar(Arvore a, int n)
        {
            List <int> retorno = new List <int>();

            //possui filhos
            if (a.filhos != null)
            {
                if (a.filhos[0] != null)
                {
                    retorno = buscar(a.filhos[0], n);
                }

                if (retorno.Count == 0)
                {
                    if (a.filhos.Length > 1)
                    {
                        if (a.filhos[1] != null)
                        {
                            retorno = buscar(a.filhos[1], n);
                        }
                    }
                }
            }
            if (retorno.Count > 0)
            {
                n = a.id;
            }

            if (a.id == n)
            {
                List <int> aux = new List <int>();
                aux.Add(a.id);

                //inicializa o array
                aux.AddRange(retorno);

                retorno = aux;
            }


            return(retorno);
        }
        public static int Consultar(Arvore aux, int num, int achou)
        {
            if (aux != null && achou == 0)
            {
                if (aux.num == num)
                {
                    achou = 1;
                }
                else if (num < aux.num)
                {
                    achou = Consultar(aux.esq, num, achou);
                }
                else
                {
                    achou = Consultar(aux.dir, num, achou);
                }
            }

            return(achou);
        }
Ejemplo n.º 15
0
        private static void Composite()
        {
            #region Composite

            Arvore arvore = new Arvore("Árvore-Root");

            Arvore ramo1 = new Arvore("Ramo1");
            ramo1.AdicionarItem(new Folha("Ramo1-Folha1"));
            ramo1.AdicionarItem(new Folha("Ramo1-Folha2"));

            Arvore ramo2 = new Arvore("Ramo2");
            ramo2.AdicionarItem(new Folha("Ramo2-Folha1"));
            ramo2.AdicionarItem(new Folha("Ramo2-Folha2"));

            arvore.AdicionarItem(ramo1).AdicionarItem(ramo2);

            arvore.Criar();

            #endregion Composite
        }
        public Dijkstra()
        {
            percursos         = new DistOriginal[QtdCidades];
            caminhoEncontrado = new List <Caminho>();
            this.vertices     = new Vertice[QtdCidades];

            this.matrizAdjacenciaComPeso = new int[QtdCidades, QtdCidades];

            for (int i = 0; i < matrizAdjacenciaComPeso.GetLength(0); i++)
            {
                for (int j = 0; j < matrizAdjacenciaComPeso.GetLength(0); j++)
                {
                    if (MatrizAdjacencia[i, j] == null)
                    {
                        matrizAdjacenciaComPeso[i, j] = infinity; // define todos os valores da matriz de adjacencia pra infinity
                    }
                    else
                    {
                        switch (Criterio)
                        {
                        case CriterioMelhorCaminho.Custo:
                            matrizAdjacenciaComPeso[i, j] = MatrizAdjacencia[i, j].Custo;
                            break;

                        case CriterioMelhorCaminho.Distancia:
                            matrizAdjacenciaComPeso[i, j] = MatrizAdjacencia[i, j].Distancia;
                            break;

                        case CriterioMelhorCaminho.Tempo:
                            matrizAdjacenciaComPeso[i, j] = MatrizAdjacencia[i, j].Tempo;
                            break;
                        }
                    }
                }
            }

            for (int i = 0; i < vertices.Length; i++)
            {
                this.vertices[i] = new Vertice(Arvore.BuscarDado(new Cidade(i, "", 0, 0)));
            }
        }
Ejemplo n.º 17
0
        public static void caminho_arvore(Arvore root, int x)
        {
            // List to store the path
            List <int> arr = new List <int>();

            // if required node 'x' is present
            // then print the path
            if (hasPath(root, arr, x))
            {
                for (int i = 0; i < arr.Count - 1; i++)
                {
                    Console.Write(arr[i] + "->");
                }
                Console.Write(arr[arr.Count - 1]);
            }

            // 'x' is not present in the binary tree
            else
            {
                Console.Write("No Path");
            }
        }
Ejemplo n.º 18
0
        static void Main(string[] args)
        {
            Console.WriteLine("ARVORE BINARIA DE INT \n");
            // arvore 1
            Arvore <int> arvore = new Arvore <int>(10);

            arvore.Insert(20);
            arvore.Insert(12);
            arvore.Insert(2);

            // exibe a arvore 1
            arvore.PeDaArvore();

            Console.WriteLine("\n ARVORE BINARIA DE STRING \n");
            // arvore 2
            Arvore <string> arvore2 = new Arvore <string>("pedro");

            arvore2.Insert("jessica");
            arvore2.Insert("willis");
            arvore2.Insert("bolsonario");
            arvore2.Insert("leonardo");
            arvore2.Insert("luciano");
            arvore2.Insert("mauro");

            // EXIBE A ARVORE 2
            arvore2.PeDaArvore();
            Console.WriteLine("\n arvore binaria de char \n ");
            Arvore <char> arvore3 = new Arvore <char>('A');

            arvore3.Insert('D');
            arvore3.Insert('F');
            arvore3.Insert('H');
            arvore3.Insert('J');
            arvore3.Insert('B');

            // exibe a arvore 3
            arvore3.PeDaArvore();
            Console.ReadKey();
        }
Ejemplo n.º 19
0
        public static Boolean hasPath(Arvore root,
                                      List <int> arr, int x)
        {
            // if root is NULL
            // there is no path
            if (root == null)
            {
                return(false);
            }

            // push the node's value in 'arr'
            arr.Add(root.id);

            // if it is the required node
            // return true
            if (root.id == x)
            {
                return(true);
            }

            // else check whether the required node lies
            // in the left subtree or right subtree of
            // the current node
            if (hasPath(root.left, arr, x) ||
                hasPath(root.right, arr, x))
            {
                return(true);
            }

            // required node does not lie either in the
            // left or right subtree of the current node
            // Thus, remove current node's value from
            // 'arr'and then return false
            arr.RemoveAt(arr.Count - 1);
            return(false);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Realiza a instância de um animal cada e os cadastra.
        /// </summary>
        private void InstanciarTodosAnimais()
        {
            Baleia b = new Baleia();

            b.Cor_pelos       = "Marrom";
            b.Data_Nascimento = Convert.ToDateTime("07/05/2003");
            b.Nome            = "Frih Wily";
            b.Sexo            = 'm';
            b.QtMamas         = 6;

            Cachorro c = new Cachorro();

            c.Cor_pelos       = "Preto";
            c.Data_Nascimento = Convert.ToDateTime("05/11/2014");
            c.Nome            = "Magrelin";
            c.QtMamas         = 6;
            c.Sexo            = 'm';

            Cobra cb = new Cobra();

            cb.Data_Nascimento = Convert.ToDateTime("06/08/2018");
            cb.Nome            = "Jararaca";
            cb.Sexo            = 'f';

            Coruja cj = new Coruja();

            cj.Cor_penas       = "Cinza";
            cj.Data_Nascimento = Convert.ToDateTime("05/09/2016");
            cj.Nome            = "Corujão";
            cj.Sexo            = 'm';

            Gato gt = new Gato();

            gt.Cor_pelos       = "Branco";
            gt.Data_Nascimento = Convert.ToDateTime("06/02/2017");
            gt.Nome            = "Mia";
            gt.Sexo            = 'f';
            gt.QtMamas         = 4;

            Gaviao gv = new Gaviao();

            gv.Cor_penas       = "Preto";
            gv.Data_Nascimento = Convert.ToDateTime("05/04/2013");
            gv.Nome            = "Pópópó";
            gv.Sexo            = 'm';

            Leao l = new Leao();

            l.Data_Nascimento = Convert.ToDateTime("20/12/2006");
            l.Nome            = "Laranxxinha";
            l.QtMamas         = 4;
            l.Sexo            = 'f';
            l.Cor_pelos       = "Laranja";

            Morcego m = new Morcego();

            m.Cor_pelos       = "Marrom escuro";
            m.Data_Nascimento = Convert.ToDateTime("01/09/2019");
            m.Nome            = "BatBat";
            m.QtMamas         = 4;
            m.Sexo            = 'f';

            Ornitorrinco o = new Ornitorrinco();

            o.Data_Nascimento = Convert.ToDateTime("15/07/2002");
            o.Cor_pelos       = "Marrom";
            o.Nome            = "Perry";
            o.QtMamas         = 6;
            o.Sexo            = 'm';

            Pato p = new Pato();

            p.Data_Nascimento = Convert.ToDateTime("16/02/2008");
            p.Nome            = "Donald";
            p.Cor_penas       = "Branco";
            p.Sexo            = 'm';

            Pinguim pi = new Pinguim();

            pi.Data_Nascimento = Convert.ToDateTime("05/06/2013");
            pi.Nome            = "Picolino";
            pi.Sexo            = 'm';
            pi.Cor_penas       = "Preto e Branco";

            Pombo po = new Pombo();

            po.Data_Nascimento = Convert.ToDateTime("14/09/2014");
            po.Cor_penas       = "Cinza";
            po.Nome            = "Jão";
            po.Sexo            = 'm';

            Tartaruga t = new Tartaruga();

            t.Data_Nascimento = Convert.ToDateTime("17/12/1823");
            t.Nome            = "Oogway";
            t.Sexo            = 'm';

            Tigre ti = new Tigre();

            ti.Data_Nascimento = Convert.ToDateTime("19/05/2001");
            ti.Sexo            = 'm';
            ti.QtMamas         = 6;
            ti.Cor_pelos       = "Laranja";
            ti.Nome            = "König Tiger";



            Arvore.Insere(b);
            Arvore.Insere(c);
            Arvore.Insere(cb);
            Arvore.Insere(cj);
            Arvore.Insere(gv);
            Arvore.Insere(gt);
            Arvore.Insere(l);
            Arvore.Insere(m);
            Arvore.Insere(o);
            Arvore.Insere(p);
            Arvore.Insere(pi);
            Arvore.Insere(po);
            Arvore.Insere(t);
            Arvore.Insere(ti);
        }
        static void Main(string[] args)
        {
            Arvore raiz = null;
            Arvore aux  = null;

            int op, numero, achou;

            do
            {
                Console.WriteLine("1 - Inserir na árvore");
                Console.WriteLine("1 - Consultar um nó da árvore");
                Console.WriteLine("2 - Consultar um nó da árvore");
                Console.WriteLine("3 - Consultar toda a árvore em ordem");
                Console.WriteLine("4 - Consultar toda a árvore em pré-ordem");
                Console.WriteLine("5 - Consultar toda a árvore em pós-ordem");
                Console.WriteLine("6 - Excluir um nó da árvore");
                Console.WriteLine("7 - Esvaziar árvore");
                Console.WriteLine("8 - Sair do programa");
                op = int.Parse(Console.ReadLine());

                switch (op)
                {
                case 1:
                    Console.WriteLine("Digite o número a ser inserido:");
                    numero = int.Parse(Console.ReadLine());
                    raiz   = Inserir(raiz, numero);
                    Console.WriteLine("Número inserido na árvore");
                    break;

                case 2:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        Console.WriteLine("Digite o número a ser consultado:");
                        numero = int.Parse(Console.ReadLine());
                        achou  = 0;
                        achou  = Consultar(raiz, numero, achou);
                        if (achou == 0)
                        {
                            Console.WriteLine("Número não encontrado na árvore!");
                        }
                        else
                        {
                            Console.WriteLine("Número encontrado na árvore!");
                        }
                    }
                    break;

                case 3:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        Console.WriteLine("Listando todos os elementos da árvore em ordem");
                        Mostraremordem(raiz);
                    }
                    break;

                case 4:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        Console.WriteLine("Listando todos os elementos da árvore em pré-ordem");
                        Mostrarempreordem(raiz);
                    }
                    break;

                case 5:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        Console.WriteLine("Listando todos os elementos da árvore em pós-ordem");
                        Mostraremposordem(raiz);
                    }
                    break;

                case 6:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        Console.WriteLine("Digite o número a ser removido:");
                        numero = int.Parse(Console.ReadLine());
                        achou  = 0;
                        achou  = Consultar(raiz, numero, achou);
                        if (achou == 0)
                        {
                            Console.WriteLine("Número não encontrado na árvore!");
                        }
                        else
                        {
                            raiz = Remover(raiz, numero);
                        }
                        Console.WriteLine("Número encontrado na árvore!");
                    }
                    break;

                case 7:
                    if (raiz == null)
                    {
                        Console.WriteLine("Árvore vazia");
                    }
                    else
                    {
                        raiz = null;
                        Console.WriteLine("Árvore esvaziada");
                    }
                    break;

                case 8:
                    break;

                default:
                    Console.WriteLine("Opção inválida");
                    break;
                }
            } while (op != 8);
        }
        static void escolheOpcao()
        {
            if (opcao.Equals("1"))
            {
                Console.Write("Lista de números de 1 a 100:\n ");
                Funcoes.imprimeNumeros();
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else if (opcao.Equals("2"))
            {
                List <int> numeros;
                Console.Write("Digite uma lista de números inteiros separados por virgula:");
                string input = Console.ReadLine();
                numeros = input.Split(',').Select(Int32.Parse).ToList();
                long soma = Funcoes.somaDeQuadrados(numeros);
                Console.WriteLine("A soma dos quadrados é: {0}", soma);
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else if (opcao.Equals("3"))
            {
                var fibonacci = Funcoes.retornaFibonacci();
                Console.WriteLine("Fibonacci: {0}", fibonacci);
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else if (opcao.Equals("4"))
            {
                //Cria arvore
                Arvore root = new Arvore(1);
                root.left                       = new Arvore(4);
                root.right                      = new Arvore(7);
                root.left.left                  = new Arvore(10);
                root.left.left.left             = new Arvore(8);
                root.left.right                 = new Arvore(2);
                root.left.right.left            = new Arvore(12);
                root.left.right.left.right      = new Arvore(13);
                root.left.right.left.right.left = new Arvore(9);
                root.right.left                 = new Arvore(3);
                root.right.right                = new Arvore(11);
                root.right.right.left           = new Arvore(6);
                root.right.right.right          = new Arvore(5);


                Console.WriteLine("Digite um nó:");
                var n = Console.ReadLine();
                Int32.TryParse(n, out int node);
                Funcoes.caminho_arvore(root, node);
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else if (opcao.Equals("5"))
            {
                Console.WriteLine("Digite uma sequencia de numeros separados por virgula:");
                var   sequencia = Console.ReadLine();
                int[] numeros   = Array.ConvertAll(sequencia.Split(','), int.Parse);
                var   result    = Funcoes.Acumular((s, n) => (s >= n) ? n : s, Int32.MaxValue, numeros.ToList());
                Console.WriteLine(result);
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else if (opcao.Equals("6"))
            {
                Console.WriteLine("Digite uma palavra:");
                var palavra = Console.ReadLine();
                var result  = Funcoes.palavraTriangulo(palavra);
                Console.WriteLine(result);
                Console.ReadLine();
                opcao = montaMenu();
                escolheOpcao();
            }
            else
            {
                Console.WriteLine("Opção inválida.");
                opcao = montaMenu();
                escolheOpcao();
            }
        }
Ejemplo n.º 23
0
        static void Main(string[] args)
        {
            long memoriaInicial = GC.GetTotalMemory(false);

            DateTime tempoInicial = DateTime.Now;
            Arvore arvore = Narrativa.GetNarrativa();
            DateTime tempoFinal = DateTime.Now;
            double tempoUsado = (tempoFinal - tempoInicial).TotalMilliseconds;

            while (arvore.noAtual.Ligacoes.Count > 0)
            {
                Console.WriteLine(arvore.noAtual.Escolha.EscolhaTexto);
                arvore.noAtual = arvore.noAtual.EscolherLigacao();
            }
            Console.WriteLine(arvore.noAtual.Escolha.EscolhaTexto);
            Console.WriteLine("Fim de jogo");


            long memoriaFinal = GC.GetTotalMemory(false);
            long memoriaUsada = memoriaFinal - memoriaInicial;
            Console.ReadKey();

            // Benchmarks:

            // Tempo:
            // Diferença em milisegundos através dos DateTimes "tempoInicial" e "tempoFinal"
            // A diferença é calculada em: double tempoUsado = (tempoFinal - tempoInicial).TotalMilliseconds;


            // Memória:
            // Pegamos a quantidade da memória através do código "GC.GetTotalMemory(false);" no inicio e fim da vida do código.
            // Por fim, é feito o calculo da diferença em: long memoriaUsada = memoriaFinal - memoriaInicial;


            // Numero de linhas para narrativa:
            // Contagem de linhas na função "Narrativa.GetNarrativa()" removendo comentários e linhas vazias através do programa Notepad++

            // Contagem de dados e repetições:
            // Os dados foram contados e revisados manualmente durante a construção da árvore utilizando o site www.mindmeister.com
            // A coleta de numero dados pode ser vista abaixo:
            //// As repetições foram calculadas da seguinte maneira: Caso só tenha 1 do elemento, ele é unico, se tiver mais do que um
            //// é porque há repetições nele onde: Repetições = QuantidadeTotal - 1 
            //// Ex: Tem 2 nós com o mesmo final, logo, 1 final só existe e 1 dado é repetição dele. Repetições = 2 - 1 = 1

            //// Até Hotel
            //Final = 18
            //Sim = 9
            //Não = 9
            //Volta = 9
            //VoltaCarro = 9
            //HotelRuim = 3
            //HotelMedio = 3
            //HotelBom = 3
            //CarroBom = 1
            //Carromedio = 1
            //CarroRuim = 1
            //Aleatoriedade = 1
            //Hotel = 1
            //Hospedagem = 1
            //Carro = 1
            //Veiculo = 1
            //Gramado = 1
            //Raiz = 1
            //SubTotal = 73
            //SubTotal Repetidos = 55

            //// Até Carro
            //Final = 36
            //Sim = 18
            //Não = 18
            //Volta = 18
            //VoltaCarro = 18
            //HotelRuim = 6
            //HotelMedio = 6
            //HotelBom = 6
            //CarroBom = 2
            //Carromedio = 2
            //CarroRuim = 2
            //Aleatoriedade = 2
            //Hotel = 1
            //Casa = 1
            //Hospedagem = 1
            //Carro = 1
            //Veiculo = 1
            //Gramado = 1
            //Raiz = 1
            //SubTotal = 141
            //SubTotal Repetidos = 122


            //// Até Gramado
            //Final = 54
            //Sim = 18
            //Não = 18
            //Volta = 36
            //VoltaCarro = 18
            //VoltaAvião = 18
            //HotelRuim = 12
            //HotelMedio = 12
            //HotelBom = 12
            //CarroBom = 4
            //Carromedio = 4
            //CarroRuim = 4
            //Aleatoriedade = 4
            //Hotel = 2
            //Casa = 2
            //Hospedagem = 2
            //Carro = 1
            //Avião = 1
            //Veiculo = 1
            //Gramado = 1
            //Raiz = 1
            //SubTotal = 225
            //SubTotal Repetidos = 204

            //// Até Raiz
            //Final = 108
            //Sim = 36
            //Não = 36
            //Volta = 72
            //VoltaCarro = 36
            //VoltaAvião = 36
            //HotelRuim = 24
            //HotelMedio = 24
            //HotelBom = 24
            //CarroBom = 8
            //Carromedio = 8
            //CarroRuim = 8
            //Aleatoriedade = 8
            //Hotel = 4
            //Casa = 4
            //Hospedagem = 4
            //Carro = 2
            //Avião = 2
            //Veiculo = 2
            //Gramado = 1
            //Natal = 1
            //Raiz = 1
            //SubTotal = 449
            //SubTotal Repetidos = 427

            // Total Branching:	449 dados
            // Total Repetições: 427 dados


        }
Ejemplo n.º 24
0
        /// <summary>
        /// Se retornar true, o cadastro foi efetuado. Se não, algo de errado ocorreu.
        /// </summary>
        /// <param name="tipoAnimal"></param>
        /// <returns></returns>
        private void Cadastro(Animal tipoAnimal)
        {
            try
            {
                if (VerificarCamposBasicos())
                {
                    return;
                }

                // Se os campos mais básicos não estiverem vazios, eles serão preenchidos.
                tipoAnimal.Nome            = txt_nome.Text;
                tipoAnimal.Data_Nascimento = Convert.ToDateTime(txt_dataNascimento.Text);

                if (cb_sexo.SelectedIndex == 0)
                {
                    tipoAnimal.Sexo = 'm';
                }
                else if (cb_sexo.SelectedIndex == 1)
                {
                    tipoAnimal.Sexo = 'f';
                }

                // Verificação de que tipos de animais estão sendo cadastrados, verificando os seus próprios componentes.
                if (tipoAnimal is Ave)
                {
                    // Verifica se o campo está vazio.
                    if (VerificarCampoVazio(txt_corPenas, "cor das penas"))
                    {
                        return;
                    }

                    // Se não estava vazio, realiza a inserção de fato.
                    (tipoAnimal as Ave).Cor_penas = txt_corPenas.Text;
                }
                if (tipoAnimal is Mamifero)
                {
                    // Também realiza as verificações de campos vazios, mas da forma mais específica pra o tipo de animal.
                    if (VerificarCampoVazio(txt_corPelos, "cor dos pêlos"))
                    {
                        return;
                    }
                    if (VerificarCampoVazio(txt_quantMama, "quantidade de mamas"))
                    {
                        return;
                    }

                    // Se o campo 'quantidade de mamas' não estiver vazio, ainda assim precisará verificar se é um número inteiro válido.
                    int quantMamas;
                    if (!int.TryParse(txt_quantMama.Text, out quantMamas))
                    {
                        MessageBox.Show("O campo 'quantidade de mamas' está num formato incorreto. Por favor, escreva um valor inteiro válido.", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }

                    // Caso tenha passado por todas as verificações, pode-se enfim atribuir as propriedades do mamífero.
                    (tipoAnimal as Mamifero).Cor_pelos = txt_corPelos.Text;
                    (tipoAnimal as Mamifero).QtMamas   = quantMamas;
                }

                Arvore.Insere(tipoAnimal); // Realiza, por fim, a inserção.

                MessageBox.Show("Animal cadastrado!", "Cadastro realizado", MessageBoxButton.OK);
                LimparCampos();
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Metodo que exibe o Menu do sistema e verifica e encaminha para o próximo método de acordo com resposta
        /// </summary>
        private static void MenuSistema()
        {
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.SetBufferSize(2, 2);
            Console.WriteLine("Escolha uma das opções do menu:");
            Console.WriteLine(" 1 - Calculo de área");
            Console.WriteLine("2 - Mostrar Animação");
            Console.WriteLine("3 - Mostrar marcas de cerveja");
            Console.WriteLine("4 - Mostrar marcas de carro");
            Console.WriteLine("5 - Sair do Sistema");
            var menuEscolhido = 0;

            try {
                menuEscolhido = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.Clear();
                MenuSistema();
            }


            switch (menuEscolhido)
            {
            case 1:
            {
                Console.Clear();
                CalculaArea();
                Retornando();
            }
            break;

            case 2:
            {
                Console.Clear();
                Arvore.ArvoreDesenho();
                Retornando();
            }
            break;

            case 3:
            {
                Console.Clear();
                ListaCerveja.Cervejas();
                Retornando();
            }
            break;

            case 4:
            {
                Console.Clear();
                ListaCarros.Carros();
                Retornando();
            }
            break;

            case 5:
            {
                Console.WriteLine("Saindo...");

                return;
            }

            default: Console.Clear(); MenuSistema();
                break;
            }
        }
Ejemplo n.º 26
0
 public FrmArvore()
 {
     InitializeComponent();
     arvore = new Arvore <Funcionario>(pbArvore);
 }
Ejemplo n.º 27
0
 public int[] caminho_arvore(Arvore a, int n)
 {
     return(buscar(a, n).ToArray());
 }
Ejemplo n.º 28
0
 private void InserirDadosDeTeste(Arvore <int, int> btree, int testDataIndice)
 {
     btree.Inserir(this.testChaveData[testDataIndice], this.testValorData[testDataIndice]);
 }
        public JsonResult RetornaArvore()
        {
            List <ConsultaPmml> consulta = Session["ConsultaPMML"] as List <ConsultaPmml>;

            if (consulta.Count <= 0)
            {
                return(null);
            }
            ArvoreGerada arvoreGerada;

            arvoreGerada            = db.ArvoreGerada.Find(consulta[0].ArvoreGeradaId);
            ViewBag.PossuiNosFilhos = true;

            if (arvoreGerada != null)
            {
                Arvore arv;
                Arvore arvoreNova = new Arvore();

                var xml = new System.Xml.Serialization.XmlSerializer(typeof(Arvore));
                using (StringReader textWriter = new StringReader(arvoreGerada.XML))
                {
                    arv = xml.Deserialize(textWriter) as Arvore;
                }

                arvoreNova.NoRaiz = new No()
                {
                    Label = arv.NoRaiz.Legenda, ValorTotal = arv.NoRaiz.ValorTotal, Caminho = true
                };
                if (!string.IsNullOrEmpty(consulta[1].Valor))
                {
                    foreach (var no in arv.NoRaiz.NosFilhos)
                    {
                        No novoNo = new No
                        {
                            Label                = no.Label,
                            ValorTotal           = no.ValorTotal,
                            MaiorValorClasseMeta = no.MaiorValorClasseMeta,
                            Valor                = (no.Tipo == Tipo.Contínuo ? (no.MenorIgual ? "<= " : "> ") : string.Empty) + no.Valor
                        };
                        arvoreNova.NoRaiz.NosFilhos.Add(novoNo);

                        if (consulta[1].Nome == no.Nome && no.Valor == consulta[1].Valor)
                        {
                            novoNo.Caminho = true;
                            if (novoNo.NosFilhos.Count <= 0)
                            {
                                ViewBag.PossuiNosFilhos = false;
                            }

                            if (consulta.Count > 2 && !string.IsNullOrEmpty(consulta[2].Valor))
                            {
                                CriaProximoNivel(no, consulta, 2, novoNo);
                            }
                        }
                    }
                }

                var json = new JavaScriptSerializer().Deserialize(new JavaScriptSerializer().Serialize(arvoreNova.GerarJSON()), typeof(JsonArvore));
                return(this.Json(json, JsonRequestBehavior.AllowGet));
            }
            return(null);
        }
Ejemplo n.º 30
0
 private void InserirDadosDeTesteEValidarAArvore(Arvore <int, int> btree, int testDataIndice)
 {
     btree.Inserir(this.testChaveData[testDataIndice], this.testValorData[testDataIndice]);
     ValidacaoArvore.ValidarArvore(btree.Root, T, this.testChaveData.Take(testDataIndice + 1).ToArray());
 }