示例#1
0
 //O método ImprimirAirbnb recebe o objeto de dados, verifica se ele não é nulo e, caso não for, mostra linha a linha o dado Airbnb obtido.
 private static void ImprimirAirbnb(Airbnb Dado)
 {
     if (Dado != null)
     {
         Console.WriteLine(
             "\nRoomID: {0}\n" +
             "HostID: {1}\n" +
             "Room Type: {2}\n" +
             "Country: {3}\n" +
             "City: {4}\n" +
             "Neighborhood: {5}\n" +
             "Reviews: {6}\n" +
             "Overall Satisfaction: {7:0.0}\n" +
             "Accommodates: {8}\n" +
             "Bedrooms: {9:0.0}\n" +
             "Price: {10:0.0}\n" +
             "Property Type: {11}",
             Dado.RoomID,
             Dado.HostID,
             Dado.RoomType,
             Dado.Country,
             Dado.City,
             Dado.Neighborhood,
             Dado.Reviews,
             Dado.OverallSatisfaction,
             Dado.Accommodates,
             Dado.Bedrooms,
             Dado.Price,
             Dado.PropertyType
             );
     }
 }
示例#2
0
        //Por último, o método Pesquisar recebe o RoomID como parâmetro e um NumComp como referência
        //Ele calcula a posição na Tabela que esse Airbnb foi inserido
        //Logo, o objeto Dado recebe o resultado da pesquisa (implementada na classe Lista) para esse RoomID e o retorna
        //O NumComp é atualizado primeiramente aqui para sinalizar a busca da posição e como referência na chamada do método Pesquisa na classe Lista
        public Airbnb Pesquisar(int RoomID, ref int NumComp)
        {
            int Pos = Mod(RoomID);

            NumComp++;

            Airbnb Dado = Tabela[Pos].Pesquisar(RoomID, ref NumComp);

            return(Dado);
        }
示例#3
0
 //O método inserir funciona de forma recursiva que verifica No a No se o RoomID do seu item é maior ou menor que o RoomID do item a ser inserido
 //Se for menor, insere no No filho da esquerda
 //Se for maior, insere no No filho da direita
 //Quando encontra o No nulo, faz a inserção neste
 private No inserir(No no, Airbnb item)
 {
     if (no == null)
     {
         no = new No(item);
     }
     else if (item.RoomID < no.Item.RoomID)
     {
         no.Esq = inserir(no.Esq, item);
     }
     else if (item.RoomID > no.Item.RoomID)
     {
         no.Dir = inserir(no.Dir, item);
     }
     return(no);
 }
示例#4
0
        public void Inserir(Airbnb Dado)
        {
            Elemento Novo = new Elemento();

            Novo.Airbnb = Dado;

            if (Início == null)
            {
                Início = Novo;
                Fim    = Novo;

                Novo.Prox = null;
            }
            else
            {
                Fim.Prox = Novo;
                Fim      = Novo;
                Fim.Prox = null;
            }
        }
示例#5
0
        //Implementação de um método QuickSort que fará a ordenação necessária para a Busca Binária
        private void QuickSort(Airbnb[] vetor, int esquerda, int direita)
        {
            int i        = esquerda,
                j        = direita;
            Airbnb pivot = vetor[(esquerda + direita) / 2];

            while (i <= j)
            {
                while (vetor[i].RoomID < pivot.RoomID && i < direita)
                {
                    i++;
                }
                while (vetor[j].RoomID > pivot.RoomID && j > esquerda)
                {
                    j--;
                }

                if (i <= j)
                {
                    Airbnb aux = vetor[i];
                    vetor[i] = vetor[j];
                    vetor[j] = aux;

                    i++;
                    j--;
                }
            }

            if (j > esquerda)
            {
                QuickSort(vetor, esquerda, j);
            }

            if (i < direita)
            {
                QuickSort(vetor, i, direita);
            }
        }
示例#6
0
        //O método Pesquisa Airbnb recebe como parâmetros o RoomID a ser pesquisado, o NumComp para computar as comparações e um string com o tipo de pesquisa;
        private static Airbnb PesquisaAirbnb(int RoomID, int NumComp, string TipoPesquisa)
        {
            //Instanciando a classe Pesquisa (que contém todos os métodos) e passando como parâmetro a Lista de dados extraídos do arquivo airbnb.txt;
            Pesquisa MinhasPesquisas = new Pesquisa(ExtrairDados("airbnb.txt"));

            //Zerando o número de comparações a cada vez que essa função é chamada;
            NumComp = 0;

            //As condições a seguir avaliam o string TipoPesquisa para exibir as estatísticas da pesquisa e chamar a função de busca referente a cada tipo;
            //Inicia um cronômetro para avaliar quanto tempo a função demora para retornar o objeto Airbnb;
            //Logo, mostra as estatísticas de tempo e número de comparações seguindo do retorno de dados se encontrar o RoomID, e caso não encontre mostra a mensagem "Airbnb não encontrado!".
            if (TipoPesquisa == "Pesquisa Sequencial")
            {
                Console.Clear();
                Console.Write("Pesquisando RoomID {0}...", RoomID);

                Stopwatch cron       = Stopwatch.StartNew();
                Airbnb    DadoAirbnb = MinhasPesquisas.PesquisaSequencial(RoomID, ref NumComp);
                cron.Stop();

                Console.Clear();
                Console.WriteLine("Pesquisa Concluída");
                Console.WriteLine("------------------");
                Console.WriteLine("\nRoomID pesquisado: {0}", RoomID);
                Console.WriteLine("Número de Comparações: {0}", NumComp);
                Console.WriteLine("Tempo: {0} ms\n", cron.ElapsedMilliseconds);
                Console.WriteLine("------------------");

                if (DadoAirbnb == null)
                {
                    Console.WriteLine("Airbnb não encontrado!");
                }
                else
                {
                    return(DadoAirbnb);
                }
            }
            else if (TipoPesquisa == "Pesquisa Binária")
            {
                Console.Clear();
                Console.Write("Pesquisando RoomID {0}...", RoomID);

                Stopwatch cron       = Stopwatch.StartNew();
                Airbnb    DadoAirbnb = MinhasPesquisas.PesquisaBinária(RoomID, ref NumComp);
                cron.Stop();

                Console.Clear();
                Console.WriteLine("Pesquisa Concluída");
                Console.WriteLine("------------------");
                Console.WriteLine("\nRoomID pesquisado: {0}", RoomID);
                Console.WriteLine("Número de Comparações: {0}", NumComp);
                Console.WriteLine("Tempo: {0} ms\n", cron.ElapsedMilliseconds);
                Console.WriteLine("------------------");

                if (DadoAirbnb == null)
                {
                    Console.WriteLine("Airbnb não encontrado!");
                }
                else
                {
                    return(DadoAirbnb);
                }
            }
            else if (TipoPesquisa == "Árvore Binária de Busca")
            {
                Console.Clear();
                Console.Write("Pesquisando RoomID {0}...", RoomID);

                Stopwatch cron       = Stopwatch.StartNew();
                Airbnb    DadoAirbnb = MinhasPesquisas.Árvore(RoomID, ref NumComp);
                cron.Stop();

                Console.Clear();
                Console.WriteLine("Pesquisa Concluída");
                Console.WriteLine("------------------");
                Console.WriteLine("\nRoomID pesquisado: {0}", RoomID);
                Console.WriteLine("Número de Comparações: {0}", NumComp);
                Console.WriteLine("Tempo: {0} ms\n", cron.ElapsedMilliseconds);
                Console.WriteLine("------------------");

                if (DadoAirbnb == null)
                {
                    Console.WriteLine("Airbnb não encontrado!");
                }
                else
                {
                    return(DadoAirbnb);
                }
            }
            else if (TipoPesquisa == "Tabela Hash")
            {
                Console.Clear();
                Console.Write("Pesquisando RoomID {0}...", RoomID);

                Stopwatch cron       = Stopwatch.StartNew();
                Airbnb    DadoAirbnb = MinhasPesquisas.TabelaHash(RoomID, ref NumComp);
                cron.Stop();

                Console.Clear();
                Console.WriteLine("Pesquisa Concluída");
                Console.WriteLine("------------------");
                Console.WriteLine("\nRoomID pesquisado: {0}", RoomID);
                Console.WriteLine("Número de Comparações: {0}", NumComp);
                Console.WriteLine("Tempo: {0} ms\n", cron.ElapsedMilliseconds);
                Console.WriteLine("------------------");

                if (DadoAirbnb == null)
                {
                    Console.WriteLine("Airbnb não encontrado!");
                }
                else
                {
                    return(DadoAirbnb);
                }
            }

            return(null);
        }
示例#7
0
        //O método Inserir recebe o objeto Airbnb a ser inserido
        //Calcula a posição de inserção com o RoomID do objeto
        //Depois chama a função Inserir na posição calculada da tabela(da classe Lista), passando o objeto Airbnb como parâmetro
        public void Inserir(Airbnb Dado)
        {
            int Pos = Mod(Dado.RoomID);

            Tabela[Pos].Inserir(Dado);
        }
示例#8
0
 public Elemento()
 {
     Airbnb = null;
     Prox   = null;
 }
示例#9
0
 //Implementação da função Inserir da Árvore, que recebe o objeto Airbnb e chama um outro método que faz a inserção do objeto na Árvore
 public void Inserir(Airbnb item)
 {
     raiz = inserir(raiz, item);
 }
示例#10
0
 public No(Airbnb item)
 {
     Item = item;
     Esq  = Dir = null;
 }