Beispiel #1
0
 private Node adicionar(Node raizArvore, DataSetEl elemento)
 {
     if (raizArvore == null)
     {
         raizArvore = new Node(elemento);
     }
     else
     {
         if (raizArvore.elemento.room_id > elemento.room_id)
         {
             raizArvore.left = adicionar(raizArvore.left, elemento);
         }
         else
         {
             if (raizArvore.elemento.room_id < elemento.room_id)
             {
                 raizArvore.right = adicionar(raizArvore.right, elemento);
             }
             else
             {
                 Console.WriteLine("O elemento " + elemento.room_id + " já foi inserido anteriormente na árvore.");
             }
         }
     }
     return(raizArvore);
 }
Beispiel #2
0
        /**
         * Busca em cada elemento do dataset (desordenado) pelo room_id passado como parâmetro
         * A variável loops é o auxiliar que conta as comparações
         */
        public static void buscaSequencial(List <DataSetEl> dataSet, long roomId)
        {
            int  loops = 0;
            bool find  = false;

            foreach (DataSetEl dataSetEl in dataSet)
            {
                loops++;
                if (dataSetEl.room_id == roomId)
                {
                    find = true;
                    break;
                }
            }

            Console.WriteLine("Comparações = " + loops);
            if (find)
            {
                DataSetEl.printroom(dataSet[loops - 1]);
            }
            else
            {
                DataSetEl.printroom(null);
            }
        }
Beispiel #3
0
        public void pesquisar(long roomId)
        {
            int      loops       = 0;
            Elemento elementoaux = busca(roomId, ref loops);

            if (elementoaux == null)
            {
                Console.WriteLine("Quarto não encontrado.");
            }
            else
            {
                DataSetEl.printroom(elementoaux.quarto);
                Console.WriteLine("");
                Console.WriteLine("Comparações = " + loops);
            }
        }
Beispiel #4
0
        /*
         * Função que encapsula as chamadas recursivas que irão identificar o quarto buscado
         */
        public static void buscaBinaria(List <DataSetEl> dataSet, long roomId)
        {
            int loops = 0, index = 0;

            index = buscaBinaria(dataSet, roomId, 0, dataSet.Count - 1, ref loops);
            Console.WriteLine("Comparações = " + loops);

            if (index != -1)
            {
                DataSetEl.printroom(dataSet[index]);
            }
            else
            {
                DataSetEl.printroom(null);
            }
        }
Beispiel #5
0
        /**
         * Faz uma chamada de uma função recursiva que irá dividir os ramos da arvore aproximando-se
         * do valor buscado.
         *
         */
        public Node pesquisar(long roomId)
        {
            int  loops = 0;
            Node node  = pesquisar(this.raiz, roomId, ref loops);

            Console.WriteLine("Comparações = " + loops);
            if (node != null)
            {
                DataSetEl.printroom(node.elemento);
            }
            else
            {
                DataSetEl.printroom(null);
            }

            return(node);
        }
Beispiel #6
0
        // bubble sort
        public static List <DataSetEl> sort(List <DataSetEl> dataset)
        {
            int i, j;

            for (i = 0; i < dataset.Count - 1; i++)
            {
                for (j = 0; j < dataset.Count - i - 1; j++)
                {
                    if (dataset[j].room_id > dataset[j + 1].room_id)
                    {
                        DataSetEl temp = dataset[j];
                        dataset[j]     = dataset[j + 1];
                        dataset[j + 1] = temp;
                    }
                }
            }

            return(dataset);
        }
Beispiel #7
0
        public void inserirElemento(DataSetEl ele)
        {
            Elemento novo = new Elemento(ele);

            novo.quarto = ele;

            if (ini == null)
            {
                ini       = novo;
                fim       = novo;
                novo.prox = null;
            }
            else
            {
                fim.prox = novo;
                fim      = novo;
                fim.prox = null;
            }
            tam++;
        }
Beispiel #8
0
        /*
         * Lê o arquivo de dataset e transforma na lista abstrata
         */
        static void readFileContent(ref List <DataSetEl> dataSetArray)
        {
            try
            {
                int    counter = 0;
                string line;

                StreamReader file = new StreamReader("airbnb_reduzido.txt");

                while ((line = file.ReadLine()) != null)
                {
                    if (counter > 0)
                    {
                        string[]  lineSplited = line.Split('\t');
                        DataSetEl aux         = new DataSetEl();
                        aux.room_id              = long.Parse(lineSplited[0]);
                        aux.host_id              = long.Parse(lineSplited[1]);
                        aux.room_type            = lineSplited[2];
                        aux.country              = lineSplited[3];
                        aux.city                 = lineSplited[4];
                        aux.neighborhood         = lineSplited[5];
                        aux.reviews              = lineSplited[6];
                        aux.overall_satisfaction = lineSplited[7];
                        aux.accommodates         = lineSplited[8];
                        aux.bedrooms             = lineSplited[9];
                        aux.price                = lineSplited[10];
                        aux.property_type        = lineSplited[11];

                        dataSetArray.Add(aux);
                    }
                    counter++;
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
        }
Beispiel #9
0
 /*
  * Função que imprime as informações sobre os quartos
  */
 public static void printroom(DataSetEl quarto)
 {
     if (quarto == null)
     {
         Console.WriteLine("Quarto não localizado.");
     }
     else
     {
         Console.WriteLine("Room ID: " + quarto.room_id);
         Console.WriteLine("Host ID: " + quarto.host_id);
         Console.WriteLine("Room Type: " + quarto.room_type);
         Console.WriteLine("Country: " + quarto.country);
         Console.WriteLine("City: " + quarto.city);
         Console.WriteLine("Neighborhood: " + quarto.neighborhood);
         Console.WriteLine("Reviews: " + quarto.reviews);
         Console.WriteLine("Overall Satisfaction: " + quarto.overall_satisfaction);
         Console.WriteLine("Accommodates: " + quarto.accommodates);
         Console.WriteLine("Bedrooms: " + quarto.bedrooms);
         Console.WriteLine("Price: " + quarto.price);
         Console.WriteLine("Property Type: " + quarto.property_type);
     }
 }
Beispiel #10
0
 public Elemento(DataSetEl elemento)
 {
     quarto = elemento;
     prox   = null;
 }
Beispiel #11
0
 public void inserir(DataSetEl alunoNovo)
 {
     this.raiz = adicionar(this.raiz, alunoNovo);
 }