Beispiel #1
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 #2
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 #3
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 #4
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);
        }