На этом уроке я дам определение графа своими словами, всё, что запомнил с момента учёбы в университете. В конце урока мы зададимся вопросом - как хранить граф в памяти компьютера.
Дата отправки отчёта:
8 августа 2018 г.
Задание выполнено: за
2 час. 0 мин.
Чему научился:
если услово предполжить , что вершины - это индексы, то для хранения графа нам нужно хранить все веришины и индексы смежных вершин, этого будет достаточно, чтоб нарисовать схему графа. Поэтому я выбрал следущий вариант через словарь , где ключи - это индексы вершин, а значение - список, содержащий смежные вершины
Dictionary<int, List <int>> graf = new Dictionary<int, List<int>>(); graf.Add( 1, new List<int>() { 2 }); graf.Add( 2, new List<int>() { 1, 3, 4, 5, 6 }); graf.Add( 3, new List<int>() { 2, 4 }); graf.Add( 4, new List<int>() { 3, 5 }); graf.Add( 5, new List<int>() { 2, 4, 8 }); graf.Add( 6, new List<int>() { 2, 7 }); graf.Add( 7, new List<int>() { 6, 13 }); graf.Add( 8, new List<int>() { 5, 9 ,13 }); graf.Add( 9, new List<int>() { 8, 10 }); graf.Add(10, new List<int>() { 9, 11 }); graf.Add(11, new List<int>() { 10, 12 }); graf.Add(12, new List<int>() { 11, 13 }); graf.Add(13, new List<int>() { 7, 8, 12, 14 }); graf.Add(14, new List<int>() { 13 });
Все верно, ser2018! Есть не один способ задания графов, и все они имеют место быть. Отличаются только удобством пользования и использования в тех или иных задачах/алгоритмах. Помимо этого используются ориентированные графы (транспортные задачи), там кроме вышеперечисленных нужно еще хранить и вес ребра... Чтобы хорошо ориентироваться в хранении/представление графов, нужно их "пощупать" самостоятельно на практике. Поэтому удачи в освоении графов!
Отчёт оценивали: 17947. Dmitry Sinitsin+19014. Николай Денисов+119525. Александр Балбашов+13922. Александр+16452. Кирилл Шмойлов+110494. Алексей В.+1791. Валерий Жданов+116218. Дмитрий+117606. Виктор+110895. Danil42Russia+118493. Evgenii Kudriavtcev+117663. Oleksandr+11. Евгений Волосатов+18877. gorynych+16861. Den Andreevich+1459. Сергей Сергеевич+17645. Александр Львович+117255. Слава+1Посетитель+1Посетитель+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Создать класс и создать требуемые поля, потом ссылку на того же типа или массив на все связанные вершины. Трудности: Графы всегда обходил стороной эту тему, но теперь придется разбираться.