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

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

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

> Бинарнoe деревo, удаление бинарного дерева
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Владимир

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


Уважаемые господа программисты! Срочно нужна помощь в проверке правильности процедуры удаления бинарного дерева:

М
Пожалуйста, используй теги


Program Vedomost;
Uses
Crt;
Type
AdrText=^Anketa;
Anketa=record
Fio: string[70];
Work: string[70];
Adres: string[70];
end;

Adrzv=^Zveno;
Zveno=record
Key: word;
Lev, Prav: Adrzv;
Adr: AdrText
end;

var
s: word;
d, g, f: string[70];
a: Adrzv;
j: AdrText;

Procedure Zanesenie;
begin
write('Vvedite tabelnii nomer rabotyschego: ');
readln(s);
write('Vvedite fameliu, imia, otchestvo rabochego: ');
readln(d);
write('Vvedite mesto raboti, spetsialnost: ');
readln(f);
write('Vvedite domashnii adres rabotauschego: ');
readln(g);
end;

Procedure SozdanieTree(var a: Adrzv; s: word; d, f, g: string);
var
z: Adrzv;
j: AdrText;
begin
if a=Nil then
begin
New(j);
j^.Fio:= d;
j^.Work:= f;
j^.Adres:= g;

New (z);
z^.Key:= s;
z^.Lev:= Nil;
z^.Prav:= Nil;
z^.Adr:=j;
a:=z;
end
else
begin
if a^.Key>s then
SozdanieTree(a^.Lev, s, d, f, g)
else
SozdanieTree(a^.Prav, s, d, f, g);
end;
end;

Procedure DelVedomost(var a:Adrzv);
begin
if a=Nil then
exit;
DelVedomost(a^.Lev);
DelVedomost(a^.Prav);
dispose(Adr);
Adr:=Nil;

dispose(a);
a:=Nil;
end;


Вопрос: правильно ли проведена очистка памяти (память должна возвращаться в кучу перед завершением работы программы)? Возникает ошибка при выполнении удаления адреса a^.Adr.

Сообщение отредактировано: klem4 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Опять-таки никаких ошибок не обнаружено... В какой последовательности и что ты делаешь, когда у тебя выскакивает ошибка (я больше про то, КАКАЯ ошибка спрашивать не буду: не хочешь отвечать - дело твое, программа нужна ТЕБЕ в конце концов, мне по барабану, сколько времени ты будешь ошибку искать, если не хочешь чтоб тебе помогли...)

У меня вот что было:
Цитата(console)
Vnimatelno izychite i zapomnite dannyy informatiy
Dlia povtornogo oznakomlenia s pravilami nazmite 11: ---------------------------
Dlia formirovania dereva nazmite 1:
Dlia priamogo vivoda spiska na ekran nazmite 2:
Dlia obratnogo vivoda spiska na ekran nazmite 3:
Dlia simmetrichnogo vivoda spiska na ekran nazmite 4:
Dlia dobavlenia elementa v spisok nazmite 5:
Dlia ydalenia elementa iz spiska nazmite 6:
Dlia poisca elementa nazmite 7:
Dlia zapis v fail nazmite 8:
Dlia vivoda iz faila nazmite 9:
Dlia vixoda iz programmi nazmite 0:
Vvedite nomer komandi: 1--------------------------------------------------------
Vvedite kollichestvo chelovek:
2
Vvedite tabelnii nomer rabotyschego: 23
Vvedite fameliu, imia, otchestvo rabochego:
Vvedite mesto raboti, spetsialnost: dsfgdsfg
Vvedite domashnii adres rabotauschego: dfgg
Vvedite tabelnii nomer rabotyschego: 45
Vvedite fameliu, imia, otchestvo rabochego: dfgsdfg
Vvedite mesto raboti, spetsialnost: sdfgdfgg
Vvedite domashnii adres rabotauschego: ffggg
Vvedite nomer komandi: 2
Tabelnii nomer:23 FIO: ------------------------------------------------------
Work: dsfgdsfg Adres: dfgg
Tabelnii nomer:45 FIO: dfgsdfg-----------------------------------------------
Work: sdfgdfgg Adres: ffggg
Vvedite nomer komandi: 8--------------------------------------------------------
Cpisok yspeshno soxranen
Vvedite nomer komandi: 9
Tabelnii nomer:23 FIO: ------------------------------------------------------
Work: dsfgdsfg Adres: dfgg
Tabelnii nomer:45 FIO: dfgsdfg-----------------------------------------------
Work: sdfgdfgg Adres: ffggg
Vvedite nomer komandi: 0--------------------------------------------------------
Heap dump by heaptrc unit
18 memory blocks allocated : 1070/1120
18 memory blocks freed : 1070/1120

0 unfreed memory blocks : 0
True heap size : 163840 (144 used in System startup)
True free heap : 163696
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 3.05.2024 19:08
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name