![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
SLaM |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
Пишу курсовик по Б-Дереву...
Осталось сделать только удаление дерева полность... Но очень не хочется рекурсивно лезть к каждому листу... Помнится в паскале перед работой с кучей писал Mark(p), а после работы Release(p) где p-pointer. т.е. запоминаю текущее значение HeapPtr, а после работы стираю всё начиная с p до текущего значения HeapPtr... Есть ли аналог в Delphi? И какие последствия мне грозят после этого при работе с Delphi??? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Работа с деревом делается только рекурсивно.
Как сделать нерекурсивно: Наследуем TList, переписываем деструктор. Деструктор должен освободить все узлы от 0 до TList.Count-1. Работаем: При добавлении каждого листа, добавляем каждый поинтер в TList. TList.Add(p); В онце работы просто уничтожаем TList - деструктор все подчистит. Минус - имеем параллельную структуру = 4 байта на каждый лист. Добавлено @ 22:05
Хотя, это замечание не совсем верно - еще можно вложениями циклов, если нам известен предельный уровень. |
|||
|
||||
SLaM |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
А с выводом дерева никогда не работал???
Я взял алгоритм из книжки Кнута "Алгоритмы и структуры данных". Грубо говоря это тот же текстовый режим, только пишу по форме и на канве сразу... Если делать с прокруткой и показом всех узлов и листов будет очень сложно?! Может кто-то знает какой-то альтернативный вариант? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А чем не устраивает стандартный TTreeView?
|
|||
|
||||
SLaM |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
TTreeView???
есть и такой?? Не знаю чем не устраивает - в глаза его не видел... |
|||
|
||||
SLaM |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 27.5.2005 Репутация: нет Всего: нет |
Предмет называется "Алгоритмы и структуры данных"...
Если в коде что-то придумано не тобой - это плохо))) (с)... Причем лекции и описание алгоритмов даются на псевдокоде... или на Модуле2 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ну, если TTreeView это плохо, тогда нужно писать и без Form и Canvas. А можно и дальше пойти - обойтись без if, for и переменных. Кодить на асме, юзая регистры и динамическую память... И операционка тоже не нужна - результат в видеопамять писать напрямую... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |