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

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

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

> Поиск элемента в дереве, Бинарное дерево
XBugiman
сообщение 14.04.2009 15:37
Сообщение #1





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

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


Структура:

PTree=^Tree;
Tree=record
info:string[70];
da,net:PTree;
end;


Нужна процедура/функция, которая возвратит указатель на элемент current содержащийся в дереве. (current: PTtree); В наличии есть root и currnet.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 15.04.2009 11:15
Сообщение #2


Гость






В Турбо Паскале над указателями не определены никакие операции, кроме сравнения с nil. То есть, тебе надо пройти по дереву, КАЖДЫЙ указатель преобразовать к виду, в котором его можно сравнить с другим указателем (я надеюсь, ты в курсе, что $83DF:$000B и $7FFD:$400B указывают на одну и ту же ячейку памяти, хотя как видишь, сами значения сегментной части и смещений у них совершенно разные), и сравнить с приведенным к тому же виду current... То есть, что-то вроде:

function findptr(root: ttree; curr: ttree): ttree;
var p: ttree;
begin
if root = nil then findptr := nil
else
if (convert(root^.left) = convert(curr)) or (convert(root^.right) = convert(curr)) then findptr := root
else begin
p := findptr(root^.left, curr);
if p = nil then p := findptr(root^.right, curr);
findptr := p;
end;
end;
Функцию Convert попробуй написать сам...

 К началу страницы 
+ Ответить 

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


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

 



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