![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
biv171 |
![]() ![]()
Сообщение
#1
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
здравствуйте,помогите если можете...задача у меня простая,но я че-то недогоняю, у меня есть бинарное дерево,я читаю данные с клавиатуры и хочу вывести мое дерево на экран,скажите в чем тут моя ошибка и как ее исправить?(я знаю что у вас есть ссылки на готовую прогу на бинарные деревья,где уже имеется процедура печати,но мне не хочется плагиатить-хочется разобраться в чем я не прав,так сказать научиться)
program derevo;
|
|||
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата у меня есть бинарное дерево,я читаю данные с клавиатуры и хочу вывести мое дерево на экран Неправда... У тебя нет никакого бинарного дерева (tree = nil, не забыл? У тебя есть структура, описывающая дерево, но сами элементы дерева отсутствуют), и ты хочешь одновременно читать данные с клавиатуры, создавать дерево и выводить его на экран?"Не пытайся объять необъятного" (С) Козьма Прутков Разбей это действие на подзадачи: сначала - заполнение дерева, а уж потом - его печать. |
biv171 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: ![]() ![]() ![]() |
Неправда... У тебя нет никакого бинарного дерева (tree = nil, не забыл? У тебя есть структура, описывающая дерево, но сами элементы дерева отсутствуют), и ты хочешь одновременно читать данные с клавиатуры, создавать дерево и выводить его на экран? "Не пытайся объять необъятного" (С) Козьма Прутков Разбей это действие на подзадачи: сначала - заполнение дерева, а уж потом - его печать. volvo я осознал свои ошибки по заполнению,но вот вывод на экран че то не получается,помоги пожайлуста.. Код program derevo; uses crt; type pstruct=^struct; struct= record inf:integer; left,right:pstruct; end; var n,y,x,q,w,m:integer; tree:pstruct; z:struct; function newd(x:integer):pstruct; var tec:pstruct; begin new(tec); tec^.inf:=x; tec^.left:=nil; tec^.right:=nil; newd:=tec; end; procedure setleft(tec:pstruct;x:integer); begin tec^.left:=newd(X); end; procedure setright(tec:pstruct;x:integer); begin tec^.right:=newd(x); end; procedure zapolnenie(tec:pstruct;z:struct); begin while not eoln do begin read(z.inf); if tec=nil then begin tree:=newd(z.inf); tec:=tree; end else if z.inf<tec^.inf then begin setleft(tec,z.inf); zapolnenie(tec^.left,z); end else begin setright(tec,z.inf); zapolnenie(tec^.right,z); end; end; end; procedure soz(tec:pstruct;f:byte); begin y:=y+1; if tec<>nil then begin if f=1 then x:=x-27; if f=2 then x:=x+15; gotoxy(x,y); if f=0 then writeln(tec^.inf); if f=1 then writeln(tec^.inf,'/'); if f=2 then writeln('\',tec^.inf); soz(tec^.left,1); soz(tec^.right,2); end; y:=y-1; end; {Основная программа} begin clrscr; tree:=nil; x:=30; y:=0; window(5,1,100,25); zapolnenie(tree,z); soz(tree,0); readkey; end.[code] Сообщение отредактировано: biv171 - 19.11.2008 22:13 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:36 |