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

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

Материалы мастер класса "Люди на карте"


Вебинар «Мы начинаем PHP + Yii2» начнётся через 11 час. 27 мин.

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

  • На этом уроке я дам определение графа своими словами,
    всё, что запомнил с момента учёбы в университете.
    В конце урока мы зададимся вопросом -
    как хранить граф в памяти компьютера.
  • Дата отправки отчёта: 24 апреля 2016 г.
  • Задание выполнено: за 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

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



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




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

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

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

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


Научился: узнал само понятие граф.
Трудности: то, что приходит мне в голову— использовать dictionary, в который мы передаём вершину и массив из рёбер, которые присоединены к этой вершине.



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