IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Дерево в зеркальном отражении
Jekaterina
сообщение 29.12.2006 12:08
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Женский
Реальное имя: Jekaterina Lauce

Репутация: -  0  +


Доброго всем утра!
Попалась задача: дано дерево, в узлах которого записаны неповторяющиеся числа. Задача: вывести в выходной файл зеркальное отражение дерева. При этом во входном файле дерево может быть записано двумя способами:1)в каждой строчке содержится информация об узле, не являющемся листом (внутренним узлом); либо 2) в записи первое число есть номер внутреннего узла, за которым выписаны дети в порядке с левой стороны в правую. Если, напр.б дан граф, как в пиложенном рисунке, то во входном файле запись его может быть и
1 2 3 4 5
3 6 7
5 8
8 9 10 11
и
5 8
3 6 7
8 9 10 11
1 2 3 4 5
В выходном файле граф выводистя подобным образом, но при условии, что внутренние узлы в порядке preoder (т.е. запись о родителе предшествует записи о ребенке). Я нашла решение задачи на с++, но очень плохо знаю этот язык. Если у кого-то будет время и желание, помогите, пожалуйста, перевести на паскаль эту программу. Прилагаю также тесты: из 8 тестов корректо выполняются 6.
Прикрепленное изображениеПрикрепленный файл  PD4.cpp ( 4.64 килобайт ) Кол-во скачиваний: 543
Прикрепленный файл  testiPD4.zip ( 2.69 килобайт ) Кол-во скачиваний: 352
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 31.12.2006 0:08
Сообщение #2


Гость






blink.gif Высокая температура сказывается... Приведенная мной выше программа делает не совсем то, что нужно... Точнее почти то, но один момент все-же упускается из вида: происходит полная инверсия списка, и первый элемент становится последним, а вот этого делать как раз не надо...

В общем, вот немного отредактированная процедура Print из модуля List, теперь она печатает результат именно так, как нужно:
procedure tlist.print;
var p: ptitem;
begin

write('(list) <');
p := first;
if assigned(p) then begin
while assigned(p^.next) do p := p^.next;
write(p^.info, ' ');
end;

p := first;
while assigned(p) and assigned(p^.next) do begin
write(p^.info, ' ');
p := p^.next
end;
writeln('>');

p := first;
while assigned(p) do begin

if p^.sublist <> nil then p^.sublist^.print;
p := p^.next;

end;

end;

...

{ основная программа сокращается до: }
begin
assign(f, 'test_8.txt'); reset(f);
p := fill_list(f);
p^.invert;
p^.print;
end.
Заметишь еще баги - говори...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Jekaterina   Дерево в зеркальном отражении   29.12.2006 12:08
volvo   Самый простой (на мой взгляд) вариант - работать Н...   29.12.2006 14:01
Jekaterina   Нужна помощь. У меня маленький опыт программирован...   29.12.2006 14:11
Jekaterina   :blink: :mega_chok:   29.12.2006 21:51
volvo   Ну, вот такой набросок попробуй использовать: uses...   30.12.2006 17:35
Jekaterina   Большое спасибо! Буду пробовать. С наступающим...   30.12.2006 20:16
volvo   :blink: Высокая температура сказывается... Приведе...   31.12.2006 0:08
Jekaterina   Уважаемый Volvo, спасибо! Будете смеяться над...   31.12.2006 20:28
Jekaterina   Может быть, все-таки эта задача решается без указ...   4.01.2007 1:52
Lapp   Может быть, все-таки эта задача решается без ука...   4.01.2007 10:00
volvo   Интересная история получается, тебе не кажется? ТЫ...   4.01.2007 9:52
volvo   Lapp, ты забыл Rewrite(f), будет ошибка №103 :blu...   4.01.2007 10:11
Lapp   Lapp, ты забыл Rewrite(f), будет ошибка №103 :bl...   4.01.2007 10:15
Jekaterina   :give_rose: Спасибо, буду изучать.   4.01.2007 10:31


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"