コード例 #1
0
 private void PosOrdem(No Inicio)
 {
     if (Inicio != null)
     {
         PosOrdem(Inicio.GetFilhoEsq());
         PosOrdem(Inicio.GetFilhoDir());
         Arvore_Percurso.Add(new No(Inicio.GetValor(), Inicio.GetPai(), Inicio.GetFilhoEsq(), Inicio.GetFilhoDir()));
         Console.Write(Inicio.GetValor() + " ");
     }
 }
コード例 #2
0
        private int AlturaNo(No NoAltura)
        {
            if (NoAltura == null || (NoAltura.GetFilhoDir() == null && NoAltura.GetFilhoEsq() == null))
            {
                return(0);
            }

            if (AlturaNo(NoAltura.GetFilhoEsq()) > AlturaNo(NoAltura.GetFilhoDir()))
            {
                return(1 + AlturaNo(NoAltura.GetFilhoEsq()));
            }
            else
            {
                return(1 + AlturaNo(NoAltura.GetFilhoDir()));
            }
        }
コード例 #3
0
 private void PrintArvorePercursoPosOrdem(No Inicio)
 {
     if (Inicio != null)
     {
         PrintArvorePercursoPosOrdem(Inicio.GetFilhoEsq());
         PrintArvorePercursoPosOrdem(Inicio.GetFilhoDir());
         Console.Write(Inicio.GetValor() + " ");
     }
 }
コード例 #4
0
        private int NumeroNos(No Inicio)
        {
            if (Inicio == null)
            {
                return(0);
            }

            return(1 + NumeroNos(Inicio.GetFilhoEsq()) + NumeroNos(Inicio.GetFilhoDir()));
        }
コード例 #5
0
        private void MediaValores(No Inicio)
        {
            if (Inicio != null)
            {
                SomaValoresArvore += Inicio.GetValor();

                MediaValores(Inicio.GetFilhoEsq());
                MediaValores(Inicio.GetFilhoDir());
            }

            MediaValoresArvore = SomaValoresArvore / NumeroNos(Raiz);
        }
コード例 #6
0
        private void Buscar(No Inicio, int NoProcurado)
        {
            if (Inicio != null)
            {
                if (NoProcurado.Equals(Inicio.GetValor()))
                {
                    NoEncontrado = Inicio;
                }

                Buscar(Inicio.GetFilhoEsq(), NoProcurado);
                Buscar(Inicio.GetFilhoDir(), NoProcurado);
            }
        }
コード例 #7
0
        private void MenoresValores(No Inicio, int media)
        {
            if (Inicio != null)
            {
                if (Inicio.GetValor() < media)
                {
                    Console.Write(Inicio.GetValor() + " ");
                }

                MenoresValores(Inicio.GetFilhoEsq(), media);
                MenoresValores(Inicio.GetFilhoDir(), media);
            }
        }
コード例 #8
0
        private void ArvoreEstritamenteBinaria(No Inicio)
        {
            if (Inicio != null)
            {
                if (Inicio.GetPai() != null)
                {
                    if (Inicio.GetPai().GetFilhoEsq() == null || Inicio.GetPai().GetFilhoDir() == null)
                    {
                        EstritamenteBinaria = false;
                    }
                }

                ArvoreEstritamenteBinaria(Inicio.GetFilhoEsq());
                ArvoreEstritamenteBinaria(Inicio.GetFilhoDir());
            }
        }
コード例 #9
0
        public void EncontrarRaiz(No Inicio)
        {
            if (Inicio != null)
            {
                if (Inicio.GetPai() == null)
                {
                    RaizEncontrada = Inicio;
                }

                if (RaizEncontrada == null)
                {
                    EncontrarRaiz(Inicio.GetPai());
                }
                EncontrarRaiz(Inicio.GetFilhoEsq());
                EncontrarRaiz(Inicio.GetFilhoDir());
            }
        }
コード例 #10
0
        private void PaisMaioresFilhos(No Inicio, List <No> PaisTestados)
        {
            if (Inicio != null)
            {
                if (Inicio.GetPai() != null && !(PaisTestados.Contains(Inicio.GetPai())))
                {
                    PaisTestados.Add(Inicio.GetPai());
                    Console.Write("Pai: " + Inicio.GetPai().GetValor() + " - ");

                    if (Inicio.GetPai().GetFilhoEsq() == null && Inicio.GetPai().GetFilhoDir() != null)
                    {
                        Console.Write("Maior Filho: " + Inicio.GetPai().GetFilhoDir().GetValor() + "\n");
                    }

                    if (Inicio.GetPai().GetFilhoDir() == null && Inicio.GetPai().GetFilhoEsq() != null)
                    {
                        Console.Write("Maior Filho: " + Inicio.GetPai().GetFilhoEsq().GetValor() + "\n");
                    }

                    if (Inicio.GetPai().GetFilhoEsq() != null && Inicio.GetPai().GetFilhoDir() != null)
                    {
                        if (Inicio.GetPai().GetFilhoEsq().GetValor() > Inicio.GetPai().GetFilhoDir().GetValor())
                        {
                            Console.Write("Maior Filho: " + Inicio.GetPai().GetFilhoEsq().GetValor() + "\n");
                        }
                        else
                        {
                            Console.Write("Maior Filho: " + Inicio.GetPai().GetFilhoDir().GetValor() + "\n");
                        }
                    }
                }

                PaisMaioresFilhos(Inicio.GetFilhoEsq(), PaisTestados);
                PaisMaioresFilhos(Inicio.GetFilhoDir(), PaisTestados);
            }
        }