[C++] Задачи за реализация на граф.


0

 

Здравейте, 
нуждая се от помощ за няколко задачи от учебник за C++ от раздела за реализация на граф. Понеже материала ми е силно мъглив много бих оценил, ако се намери някой да реши някоя задача да опише и решението. Съответно задачите са:
 
 
1) Да се създаде непразен граф с цели числа, след което да се изведе.
 
2) Да се създаде функция, която връща дали има път между два върха. Ако съществуват повече от 1 да върне най - краткият път и дължината му.
 
3) Да се създаде функция, която определя всички върхове на даден граф, които са недостижими от даден връх.
 
4) Да се създаде функция, която намира всички цикли на даден връх на даден граф.
 
5) Да се създаде функция, която намира най - късия цикъл на даден граф.
 
6) Да се създаде функция, която намира всички прости пътища между два върха на даден граф с дължина < k.
 
 
Предварително благодаря на всички!



Отговори



2
Колега, ще се радваме ако все пак покажеш какво си направил дотук сам и къде точно имаш проблеми с реализацията.
Ако все още нищо не си започнал, те съветвам да опиташ да се постараеш и където срещнеш проблеми да зададеш отново въпроса си, конкретно за тези проблеми.
Като за начало можеш да започнеш с едно търсене в Google, например "Representing graphs c++" (или на български, в който случай резултатите ще са по-малко).
Пожелавам ти успех и желание за работа ;).
Поздрави,
Жоро



0
Благодаря за бързия отговор. Успях да реша 1ва задача в клас на Code Blocks, но като я въведох в Visual Studio ми изкарва много странни стойности при извеждане на граф-а. Вече имам и идеи за 2ра и 3та, но не и за тези с циклите. Ето и кода:
#include "stdafx.h" #include

от stefanvd (0 точки)

0
Хм, странните символи най-вероятно се получават, защото матрицата A[101][101] никъде не ѝ задаваш стойности. Съответно в C++ нещо което не е зададено получава произволна стойност (всъщност стойност на паметта върху която е инициализирано в този момент) и ти по-късно печаташ всички клетки - а доколкото виждам не винаги обхождаш всички когато четеш входа. Направи едно обхождане на матрицата (както правиш за изхода) и направи всяка клетка да е равна на 0 и виж дали ще има подобрение