Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("arvore avl!");

            ArvoreAVL     arvoreAVL = new ArvoreAVL();
            ArvoreBinaria arvoreBinaria = new ArvoreBinaria();
            int           opcao, x;

            while (true)
            {
                // exemplo
                // 70 40 20 60 80 55 85 10 15 5
                Console.WriteLine("1 - exibir a arvore AVL");
                Console.WriteLine("2 - inserir um novo no");
                Console.WriteLine("3 - remover um no ");
                Console.WriteLine("4 - percorrer em ordem AVL");
                Console.WriteLine("5 - exibir a arvore bin");
                Console.WriteLine("6 - percorrer em ordem bin");
                Console.WriteLine("7 - sair");
                Console.Write("escolha uma opcao: ");
                opcao = Convert.ToInt32(Console.ReadLine());

                if (opcao == 7)
                {
                    break;
                }

                switch (opcao)
                {
                case 1:
                    Console.Write("\n AVL\n");
                    arvoreAVL.Exibir();
                    break;

                case 2:
                    Console.Write("entre com a chave que sera inserida: ");
                    x = Convert.ToInt32(Console.ReadLine());
                    arvoreBinaria.Inserir(x);
                    arvoreAVL.Inserir(x);
                    break;

                case 3:
                    Console.Write("entre com a chave que sera removida: ");
                    x = Convert.ToInt32(Console.ReadLine());
                    arvoreBinaria.Remover(x);
                    arvoreAVL.Removeravl(x);
                    break;

                case 4:
                    Console.Write("\n AVL\n");
                    arvoreAVL.PercorrerEmOrdem();
                    break;

                case 5:
                    Console.Write("\n bin\n");
                    arvoreBinaria.Exibir();
                    break;


                case 8:
                    Console.Write("\n bin\n");
                    arvoreBinaria.PercorrerEmOrdem();
                    break;
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            string        x;
            int           codigo = 0;
            ArvoreBinaria ArvoreContatos;
            DateTime      dt;

            contatos[] contatos = Ler("contatos.txt");
            int        Aux;
            string     nome;
            int        pes;

            if (contatos != null)
            {
                codigo = contatos[contatos.Length - 1].Código;
            }
            do
            {
                Console.Clear();
                Console.WriteLine("1 - Inserir um novo Contato");
                Console.WriteLine("2 - Remover um contato existente");
                Console.WriteLine("3 - Imprimir os contatos ordenados por nome");
                Console.WriteLine("4 - Imprimir os contatos ordenador por data de nascimento");
                Console.WriteLine("5 - Pesquisar um contato na lista usando o código (Arvore Binária)");
                Console.WriteLine("6 - Pesquisar um contato na lista usando o nome (Arvore Binária)");
                Console.WriteLine("7 - Pesquisar um contato na lista usando o data de nascimento (Arvore Binária)");
                Console.WriteLine("8 - Pesquisar um contato na lista usando o e-mail (Arvore Binária)");
                Console.WriteLine("9 - Sair");

                x = Console.ReadLine();

                switch (x)
                {
                case "1":     //1 - Inserir um novo Contato
                    codigo++;

                    Console.Clear();
                    contatos NovoContato = new contatos();

                    NovoContato.Código = codigo;

                    Console.WriteLine("Digite o nome do contato");
                    NovoContato.Nome = Console.ReadLine();

                    Console.WriteLine("Digite a data de nascimento dd/mm/aaaa");
                    string data = Console.ReadLine();

                    Console.WriteLine("Digite o telefone");
                    NovoContato.Telefone = Console.ReadLine();

                    Console.WriteLine("Digite o e-mail");
                    NovoContato.email = Console.ReadLine();

                    //Manda Escrever
                    Escrever("contatos.txt", $"{NovoContato.Código}|{NovoContato.Nome}|{data}|{NovoContato.Telefone}|{ NovoContato.email}");

                    break;

                case "2":     //2 - Remover um contato existente
                    Console.Clear();
                    Console.WriteLine("Digite o codigo a ser deletado");
                    DeletarLinha("contatos.txt", Console.ReadLine());

                    break;

                case "3":     //3 - Imprimir os contatos ordenados por nome
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    int QtnChar = Menor(contatos);
                    QuickSortAlfabetica(contatos, 0, contatos.Length - 1, QtnChar);

                    foreach (contatos item in contatos)
                    {
                        imprimir(item);
                    }

                    Console.ReadKey();

                    break;

                case "4":     //4 - Imprimir os contatos ordenador por data de nascimento
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    dt       = DateTime.Now;

                    QuickSortDataNarcimento(contatos, 0, contatos.Length - 1, dt);

                    foreach (contatos item in contatos)
                    {
                        imprimir(item);
                    }

                    Console.ReadKey();

                    break;

                case "5":    //5 - Pesquisar um contato na lista usando o código (Árvore Binária e Tabela Hash)

                    ArvoreContatos = new ArvoreBinaria();
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    dt       = DateTime.Now;

                    QuickSortDataNarcimento(contatos, 0, contatos.Length - 1, dt);

                    foreach (contatos item in contatos)
                    {
                        ArvoreContatos.Inserir(item);
                    }

                    Console.WriteLine("Digite o codigo a ser deletado");

                    imprimir(ArvoreContatos.Pesquisar(int.Parse(Console.ReadLine())));
                    Console.ReadKey();

                    break;

                case "6":    //6 - Pesquisar um contato na lista usando o nome (Árvore Binária e Tabela Hash)
                    ArvoreContatos = new ArvoreBinaria();
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    Aux      = Menor(contatos);

                    for (int i = 0; i < contatos.Length; i++)
                    {
                        contatos[i].Código = ConverterInt(contatos[i].Nome, Aux);
                        ArvoreContatos.Inserir(contatos[i]);
                    }

                    Console.WriteLine("Digite o nome");
                    nome = Console.ReadLine();
                    pes  = ConverterInt(nome, Aux);
                    imprimir(ArvoreContatos.Pesquisar(pes));
                    Console.ReadKey();
                    break;

                case "7":    //7 - Pesquisar um contato na lista usando o data de nascimento (Árvore Binária e Tabela Hash)
                    ArvoreContatos = new ArvoreBinaria();
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    dt       = DateTime.Now;

                    for (int i = 0; i < contatos.Length; i++)
                    {
                        contatos[i].Código = (dt - contatos[i].DataNascimento).Days;
                        ArvoreContatos.Inserir(contatos[i]);
                    }

                    Console.WriteLine("Digite a data dd/mm/aaaa");
                    string[] dat1    = Console.ReadLine().Split('/');
                    DateTime pesq    = new DateTime(int.Parse(dat1[2]), int.Parse(dat1[1]), int.Parse(dat1[0]));
                    int      dataPes = (dt - pesq).Days;
                    imprimir(ArvoreContatos.Pesquisar(dataPes));
                    Console.ReadKey();
                    break;

                case "8":    //8 - Pesquisar um contato na lista usando o e-mail (Árvore Binária e Tabela Hash)
                    ArvoreContatos = new ArvoreBinaria();
                    Console.Clear();
                    contatos = Ler("contatos.txt");
                    Aux      = Menor(contatos);

                    for (int i = 0; i < contatos.Length; i++)
                    {
                        contatos[i].Código = ConverterInt(contatos[i].email, Aux);
                        ArvoreContatos.Inserir(contatos[i]);
                    }

                    Console.WriteLine("Digite o nome");
                    nome = Console.ReadLine();
                    pes  = ConverterInt(nome, Aux);
                    imprimir(ArvoreContatos.Pesquisar(pes));
                    Console.ReadKey();
                    break;

                case "9":    //sair
                    return;

                default:
                    Console.WriteLine("Invalido");
                    break;
                }
            } while (true);
        }