Понимание кода реализации структур данных
Я изучаю алгоритмы и структуры данных, и мой инструктор хочет, чтобы я реализовал несколько структур данных (например, BST, стек и т. Д.) И алгоритмы (например, быстрый поиск, DFS и т. Д.). Я хочу верить, что я понимаю основы, но каждый раз, когда я начинаю планировать код, у меня возникают одни и те же трудности:
вот мое текущее задание: мой инструктор хочет, чтобы я реализовал DFS (поиск в глубину) для ориентированного графа (используя C++).
мой вопрос - как мне реализовать граф? я должен использовать матрицу смежности? или я должен использовать список смежности? ни то ни то?? поэтому я спросил своего инструктора, и его ответ был следующим: "думайте о графике как о чёрном ящике"... более сбитый с толку, чем раньше, я поспешил в stackru, и вот я отправляю этот вопрос... Я не ищу кого-то чтобы сказать мне, как реализовать DFS (или любой другой алгоритм - я тоже могу гуглить!)- мне просто нужно, чтобы кто-то объяснил, что я должен получить в качестве ввода, и что я должен предоставить в качестве вывода?
Я буду благодарен за любой комментарий! Спасибо!
1 ответ
Что он подразумевает под черным ящиком, так это то, что вы не можете видеть узлы и то, как они соединяются, прежде чем вы сделаете свою DFS. Вы, вероятно, просто получите корневой узел, и ваш алгоритм придется исследовать оттуда. Что касается того, что вы должны выводить - это зависит от назначения. Вы ищете конкретные данные? если нет, возможно, подробно, какие узлы были посещены и в каком порядке.