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

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

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

 
 Ответить  Открыть новую тему 
> изменение э-тов по ключу в дереве
Artex
сообщение 25.12.2006 19:48
Сообщение #1


Гость






Всем привет, очень прошу помочь с деревом, я читал FAQ, но не смог разобраться sad.gif(( Задача такая: изменить
отрицательные элементы в дереве на их abs величины, похожей нигде пока не нашел... Из всего курса паскаля не врубился только в эту. Помогите пожалуйста дописать процедуру ввода элементов и использование этих процедур в программе, очень прошу...
Procedure Abs(T: TTree);
Begin
If T <> nil Then
With T^ Do Begin
if data<0 Then Data := abs(data);
AbsLeft(T); AbsRight(T)
End
End;
procedure PrintTree(t:Ttree;h:integer);
var i:integer;
begin
if t<>nil then
with t^ do
begin
PrintTree(left,h+1);
for i:=1 to h do write(' ');
writeln(key);
PrintTree(right,h+1);
end;
end;


var
root: TTree;
...


begin
... { заполнение дерева }


Abs(root);

... { выводим результат }
end.


Сообщение отредактировано: volvo - 25.12.2006 19:55
 К началу страницы 
+ Ответить 
volvo
сообщение 25.12.2006 19:54
Сообщение #2


Гость






Procedure Abs(T: TTree);
Begin
If T <> nil Then
With T^ Do Begin
Data := system.abs(Data);
Abs(Left); Abs(Right)
End;
End;
Процедуры создания дерева есть в FAQ... Я не вижу смысла перепечатывать их оттуда сюда, ничего нового ты все равно не увидишь, и если не разобрался ТАМ, то как разберешься ЗДЕСЬ?
 К началу страницы 
+ Ответить 
Гость
сообщение 25.12.2006 20:16
Сообщение #3


Гость






Type  TType = Integer;
TTree = ^TNode; TNode = Record
Data: TType;
Left, Right: TTree;
End;
Procedure Add(Var T: TTree; i: TType);

Procedure CreateNode(Var p: TTree; n: TType);
Begin
New(p);
p^.Data := n;
p^.Left := nil;
p^.Right := nil
End;

Begin
If T <> nil Then
With T^ Do Begin

If Data < i Then Add(Right, i)
Else
If Data > i Then Add(Left, i)

End
Else
CreateNode(T, i)
End;
Procedure Abs(T: TTree);
Begin
If T <> nil Then
With T^ Do Begin
Data := system.abs(Data);
Abs(Left); Abs(Right)
End;
End;
Procedure PrintDown(T: TTree);
Begin
If T = nil Then halt;
With T^ Do Begin

Write(Data, ' ');
PrintDown(Left); PrintDown(Right)

End
end;


Var


Begin



End.

мне нужна только описательная часть и использование процедур...
это последняя задача для допуска к экзамену, и именно тему деревья я пока не понял, остальные задачи делал сам и вовремя.
М
Про теги не забываем...
мисс_граффити



Сообщение отредактировано: мисс_граффити - 25.12.2006 20:54
 К началу страницы 
+ Ответить 

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

 



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