| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C] Топологическая сортировка со словарем |
| Автор: Pblcya 18.11.2011, 15:16 |
| Здравствуйте! Нужна помощь в написании программы на С. Условие такое: Дано некоторое конечное множество V и множество упорядоченных пар элементов из V - E . Иными словами, в множестве E содержатся пары (u, v), где: u, v ∈ V. Если (u, v)∈E, мы будем говорить, что u предшествует v. Постройте упорядоченную последовательность элементов из V для которой верно, что если (u, v)∈E , то u предшествует v. В первой строке текстового файла ‘input.txt’ находятся слова, состоящие из английских букв, разделенные пробелом. Эти слова образуют множество V. Далее в каждой строке, за исключением, быть может, последней (которая может быть пустой), следуют пара слов, разделенных пробелом из множества V. Будем считать, что первое слово предшествует второму. Выведите в текстовый файл ‘output.txt’ через пробел слова из множества V в такой последовательности, что если одно слово предшествует другому, по условию задачи, то оно должно быть выведено раньше, второго. Если последовательность, удовлетворяющую условию, построить невозможно выведите сообщение ‘[Error]’ . Дополнительные требования: Работа с памятью должна быть корректной: необходимо использовать <crtdbg.h>. Использовать только С! Пример: "input.txt" a b c d e f a b d c b d "output.txt" a b e d c f Помогите пожалуйста написать, а то я алгоритм в принципе понимаю, но с реализацией проблемы... |