Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Коллекция графов / Широкий алгоритм

  • На этом уроке мы напишем алгоритм поиска вширь.
    Однако, запустить его не удастся. Почему?
    Это вам самостоятельное задание, разобраться
    в причине, и найти способ, как это исправить.
  • Дата отправки отчёта: 8 февраля 2018 г.
  • Задание выполнено: за 1 час. 5 мин.
  • Чему научился: Написал функцию поиска в ширь.
    Проблема возникает как я понял потому, что во время прохода по колекции ее значения изменяются и это выдает исключения.
    Как вариант исправления можно вместо Hashtable использовать Dictionary и тогда в цикле foreach добавить преобразование .ToArray(). После этого программа работает.
    Для того чтобы исправить ситуацию с Hashtable я нашел выход в том, что все индексы можно перевести в массив методом CopyTo(array, from). Так как в методе GetAllVertex нас интересуют только индексы всех вершин, то как бы не изменялись цвета, обновлять полученный массив не будет нужды.
    В итоге было дописано следующее:

                Array arr = new int[vertexes.Keys.Count];
                vertexes.Keys.CopyTo(arr, 0);
                foreach (int number in arr)
                {
                    yield return number;
                }
  • Что было сложным: Не очень было понятно как лучше исправить ситуацию с Hashtable
  • Оценка видео-уроку:
Отчёт от 13665 за Коллекция графов / Широкий алгоритм


Отчёт от 13665 за Коллекция графов / Широкий алгоритм




Оцени работу

 
Сохранить страницу:

9913. --
vip
vip
ответить
→  Денис  # Коллекция графов / Широкий алгоритм / 2018-02-09 01:07

вот это вот yield return number; для меня не совсем понятно пока
буду разбираться


  • Отчёт оценивали:
    13665Денис+1   10494Алексей В.+1   16533Андрей Шевченко+1   459Сергей Сергеевич+1   9752chokayes+1   1Евгений Волосатов+1   17093jin+1   9913vip+1   16496Pavlin+1   8707Володимир+1   6452Кирилл Шмойлов+1   8275Tekashnik+1   16653Александр+1   16218Дмитрий+1   4395Денис+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Трудности: Понять в чем именно ошибка.
Программу то я запустил, перейдя с foreach на for, но чем точно дело я не понял. Похоже Hashtable возвращает не int в итераторе. Но урок отличный, я долго колупался)


Научился: Вспомнил алгоритм поиска вширь через очередь.
Ну раз мы изменяли коллекцию, то почему бы там, где итератор, не сделать пребор, как в массиве - по индексу?