А зачем нужна теория графов в программирование?
Вот наверное очень тупенький вопрос. А зачем нужна теория графов в программирование? Я просто незнаю что это вобще такое :( Sorry за тупость...
Очень хороший вопрос новичка. Отвечать можно долго, приводя много примеров. Расскажу вкратце. Граф (неформально) - это множество ребер(дуг,стрелочек) в совокупности с множеством вершин. нарисуй треугольник - вот тебе граф. Важно понимать что в графе нет углов, более того - это вообще не имеет отношения прямого к геометрии - либо ребро между двумя вершинами есть, либо нету - вот принцип. таким образом, наипростейший способ представить граф в компе это взять квадратную матрицу и писать в a[j] единицу, если между i и j есть ребро, иначе писать 0. Графы бывают разными, тут читай литературу. (например Кристофидис). Где конкретно применяется - да везде. дело в том что графы во многих алгоритмах используются неявно, более того - любую программу можно представить в виде графа. но это уже теория. Эффективные структуры данных это тоже графы - деревья там всякие. хочешь узнать больше - скачай там по ссылке книжку
такие книги
Посмотри и подумай, случайно ли существуют
Дык любые деревья, любые списки (язык Лисп например) - это различные формы графов... Реляция в базах данных... Да без графов даже жесткий диск не отформатируешь, а ты говоришь зачем нужна теория графов в программировании...
не знаю как жесткий диск, а вот в сетях в терминах теории графов реализуется практически все.
Спасибо что ответили, хоть немного понял. Теперь еше почитаю про них и по пробую понять.
Да даже простейший парсер параметров командной строки - да и любой парсер/лексер - это машина состояний, граф. Вызовы функций, иерархия классов, да вообще почти все что выглядит как взаимосвязанные элементы - графы.
Томас Кормен "АЛГОРИТМЫ. ПОСТРОЕНИЕ И АНАЛИЗ"
(Thomas H. Cormen "INTRODUCTION TO ALGORITHMS")
Цитата: dEBuch
Вот наверное очень тупенький вопрос. А зачем нужна теория графов в программирование? Я просто незнаю что это вобще такое :( Sorry за тупость...
дык... нафлудили тут... все просто : если данные программы структурируются в виде графа - то тут мы можем применять различные методы теории графов - например поиск кратчайшего пути между двумя вершинами...
...или раскраска графа....как сейчас помню, в первой книге, которую я читал про графы, разбирается пример о режиме работы светофора на сложном перекрестке. И это все графы, без них никуда...
вот на пример из собственного опыта как я познакомился с графами:
(своими словами) граф - это группа обьектов и схема их связей.
пример: электрическая схема,
обьекты - это детали (резисторы, канденсаторы, транзисторы ... либо узел (соединение нескольких связей/ветвление, смотря как посмотреть))
связи - зто провода или дорожки на плате
по связям можно назначать пути обхода веток графа и на этом основывается множество вариантов расчета электрических схем ... теоретические основы электротехники еще помню чутка
я делал как то при помощи графов поиск оптимального маршрута по городу по произвольным точкам с учетом направления движения по улицам ... и т.д. Там обьекты графа это были перекрестки, а улицы это связи ...
главное понять принцип, граф это тока вид представления данных (исходные условия) а после идет реализация решения задачи - самое интересное :)