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

Формула программиста
основатель — Волосатов Евгений Витольдович

Коллекция графов / Граф

  • На этом уроке я дам определение графа своими словами,
    всё, что запомнил с момента учёбы в университете.
    В конце урока мы зададимся вопросом -
    как хранить граф в памяти компьютера.
  • Дата отправки отчёта: 24 апреля
  • Задание выполнено: за 30 мин.
  • Чему научился: Что такое граф и методы его хранения
  • Что было сложным: придумать метод хранения
  • Комментарии: Может быть надо хранить как вложенный массив - Массив [int, int[]]. Первый int - для цвета данной вершины, вложенный массив - для перечисления соседей вершины.
  • Оценка видео-уроку:
Отчёт от 4780 за Коллекция графов / Граф




Оцени работу

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

4780. Дмитрий
Дмитрий
ответить
→  Михаил  # Коллекция графов / Граф / 2016-04-29 14:45

Имелось ввиду использование вложенных массивов, jagged array [int][int], я не совсем корректно написал


6282. Михаил
Михаил
ответить
→  Дмитрий  # Коллекция графов / Граф / 2016-04-25 09:47

Дмитрий, массив - это коллекция ОДНОТИПНЫХ индексированных элементов. Если хранить как ты предлагаешь Массив[int, int[]] у тебя получается что в Массиве хранится первый элемент типа int, а второй типа ссылка на другой массив int - это совершенно разные вещи.


1947. Denis
Denis
ответить
→  Дмитрий  # Коллекция графов / Граф / 2016-04-25 06:24

Можно хранить и так, собственно, никто не запретит. Вопрос только в быстродействии и съеденной памяти. Не уверен, какой способ лучше, просто в хеш таблице быстрее скорость доступа к n-ому элементы (если их много).


24. Оля
Оля
ответить
→  Дмитрий  # Коллекция графов / Граф / 2016-04-24 22:36

Дима, какой красивый у тебя граф, мне он очень нравится! :)


  • Отчёт оценивали:
    8380zhikharevav+1   7119Новопашин Владимир0   9567Максим+1   6452Lik_Kirill+1   4467Alcatraz+1   8835Булат+1   9288Pučko Antonina+1   6644valerys Nikola+1   4992Николай+1   689Igorenzia+1   9263Андрей Н.+1   9237Mais+1   459Сергей Сергеевич+1   7645Александр Львович+1   1537Сергей+1   1Евгений Витольдович+1   24Оля+1   3506Алексей|BrisK|Кривицкий+1   1947Denis+1   6958Кирилл+1   6282Михаил+1  

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




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: стыдно сказать, но не знал что такое граф
Трудности: не было
можно хранить в дженерике Dictionary и в нем еще один дженерик List: Dictionary> dict = new Dictionary>(); заполнение очевидное , где ключ Dictionary это вершина, List связанные с ключом другие вершины
Научился: Освежил в памяти начальные сведения из теории графов.
Как вариант: List> g = new List>(); ну или даже массив массивов, например: int[][] g; F вообще, конечно, в каждой конкретной задаче нужно использовать реализацию которая подойдет конкретно к этой задаче: Например, если нам нужно хранить еще и цвет, то создаем структуру (ну или класс) "Вершина" с полями "Цвет" и "Список смежных вершин", затем создаем коллекцию этих "Вершин"