private void SearchCycles()
        {
            loadingLabel.Visible = true;

            CyclesSearcher searcher;

            switch (algorithmSelect.SelectedIndex)
            {
            case 0:
                searcher = new SimpleSearcher(Graph, true);
                break;

            case 1:
                searcher = new EulerSearcher(Graph, true);
                break;

            case 2:
                searcher = new HamiltonSearcher(Graph, true);
                break;

            default:
                throw new WrongCycleTypeException("При выборе вида цикла произошла неизвестная ошибка!");
            }

            searcher.GetCycles();
            Steps = searcher.GetSteps();

            ShowFirstStep();

            loadingLabel.Visible = false;
            stepControls.Visible = true;
        }
        private void SearchCycles()
        {
            CyclesSearcher searcher;

            switch (selectCyclesType.SelectedIndex)
            {
            case 0:
                searcher = new SimpleSearcher(Graph, false);
                break;

            case 1:
                searcher = new EulerSearcher(Graph, false);
                break;

            case 2:
                searcher = new HamiltonSearcher(Graph, false);
                break;

            default:
                throw new WrongCycleTypeException("При выборе алгоритма произошла ошибка. Просим прощения за доставленные неудобства!");
            }



            Cycles = searcher.GetCycles();

            if (Cycles.Count > 0)
            {
                InitCycleSelector();

                MessageBox.Show($"Найдено следующее количество циклов: {Cycles.Count}.");
                panelCycles.Visible = true;
            }
            else
            {
                MessageBox.Show($"Выявлено отсутствие циклов выбранного типа в данном графе.");
                panelCycles.Visible = false;
            }
        }