Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2009, 12:46   #1
Mclaren
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 65
По умолчанию Б - деревья

Как удалять элементы с Б дерева?
Mclaren вне форума Ответить с цитированием
Старый 05.06.2010, 13:40   #2
Алена_=)))
Пользователь
 
Аватар для Алена_=)))
 
Регистрация: 13.05.2010
Сообщений: 42
По умолчанию

насколько я знаю удаления узла с заданным значением происходит в 3 варинтах.
вот моя процедурка вроде норм работает!(PASCAL)
procedure delete_key(var p:svd; x:integer);
var q:svd;
procedure Del(var r:svd);
begin
if (r^.right<>nil) then Del(r^.right)
else
begin
q^.key:=r^.key;
q:=r;
r:=r^.left;
dispose(q);
end;
end;{конец del}
Begin{поиск узла для удаления и выбор варианта его удаления}
if p=nil then writeln('net elementa s zadanbIm klyuchom')
else if (x<p^.key) then delete_key(p^.left,x)
else if (x>p^.key) then delete_key(p^.right,x)
else{узел найден выбир вариант}
begin{2 вар}
q:=p;{q-указатель на удал звено}
if (q^.right=nil) then begin p:=q^.left;
dispose(q); end
else if (q^.left=nil) then begin p:=q^.right; dispose(q); end
else Del(p^.right);{вариант 3}

end;




end;
Алена_=))) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деревья на С++ osichev Помощь студентам 0 11.12.2009 21:51
Б деревья F_A_N_Alex Помощь студентам 1 06.10.2009 23:05
Деревья Chudo4258 Помощь студентам 3 29.04.2009 14:46
Деревья Mitron Общие вопросы Delphi 5 01.02.2008 10:09
Деревья Зёка_студент Помощь студентам 1 26.12.2007 21:47