Мне нужна помощь в реализации BFS в C для вывода найденного пути
У меня есть программа на языке Си, которая делает BFS для поиска вершины цели. Проблема в том, что он выплевывает все вершины, которые он посетил, а не только путь к цели. Я не могу полностью придумать решение для этого, не вызывая ошибки сегментации.
Предположим, что входной файл имеет следующий вид: https://pastebin.com/kmYK4k0t
Первая строка-это число вершин, в то время как другие строки перечисляют матрицу смежности.
Выход выходит как 1--7--3--2--6--5--9--8--10 при поиске 10, когда я просто хочу сохранить путь 1--7--9--10. Может ли кто-нибудь порекомендовать какие-то новые структуры данных, чтобы я мог изменить этот путь? То, что я пробовал, не работает.
Вот этот код:
https://pastebin.com/seYSXNiK
Есть какие-нибудь предложения по структурам данных, которые я могу использовать для сохранения пути?
Что я уже пробовал:
Я пробовал реализовать очередь, но это просто сегментирует мою программу. Я не знаю, куда идти дальше.