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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 12:42   #1
NewNub
 
Аватар для NewNub
 
Регистрация: 05.12.2011
Сообщений: 6
По умолчанию бинарное дерево

Здравствуйте. У меня возникла такая проблема. нужно реализовать бинарное дерево, добавлять и удалять от туда элементы. Как это сделать я представления не имею. Кто чем может помогите. Заранее благодарен
Помоги ближнему своему и тебя не забудут))
NewNub вне форума Ответить с цитированием
Старый 05.12.2011, 15:10   #2
nick17
Пользователь
 
Регистрация: 05.07.2010
Сообщений: 30
По умолчанию

можно рекурсией:
Цитата:
procedure ScanTree(Root: String; Level:integer; var ResultList:TStringList);

// Root - Имя папки
// Level - Уровень вложенности, для формирования отступов
// ResultList - Набор строк в который выводится результат работы процедуры

var
sr, sr1:TSearchRec;
Space:String;
i:integer;
begin
//курсор - песочные часы
Screen.Cursor := crHourGlass;

//Формируем отступ
Space:= '';
// for i:=1 to Level do
// Space:=Space + ' ';

//Печатаем название папки
ResultList.Add(Space + UpperCase(Root));

//Перебираем все папки первого уровня вложенности по отношению к папке Root
if FindFirst(Root + '\*.*', faDirectory, sr) = 0 then
while FindNext(sr)=0 do
if (sr.Name <> '.') and (sr.Name <> '..') and ((sr.Attr and faDirectory) = faDirectory) then
begin
//Нашли папку, вызываем ScanTree рекурсивно; Root + '\' + sr.Name - имя вложенной папки
ScanTree(Root + '\' + sr.Name, Level + 1, ResultList);
end;
FindClose(sr);


//Перебираем файлы первого уровня вложенности по отношению к папке Root
if FindFirst(Root + '\*.*', faAnyFile, sr1) = 0 then
while FindNext(sr1) = 0 do
if (sr1.Name <> '.') and (sr1.Name <> '..') and ((sr1.Attr and faDirectory) <> faDirectory) then
//Печатаем название и размер файла с отступом
ResultList.Add(Space + ' ' + sr1.Name + ': ' + format(' %u KB', [round(sr1.Size /1024.0)]));
FindClose(sr1);


end;
я эту процедуру взял из инета
nick17 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бинарное дерево Lucefer2007 Общие вопросы C/C++ 0 17.04.2011 14:31
Бинарное дерево gorro Общие вопросы C/C++ 3 02.02.2011 20:53
Бинарное дерево) Svetlanka_ya Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 12:35
Бинарное дерево?? energywav Общие вопросы C/C++ 2 18.12.2009 01:13