![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
XBugiman |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Структура:
Нужна процедура/функция, которая возвратит указатель на элемент current содержащийся в дереве. (current: PTtree); В наличии есть root и currnet. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
|
XBugiman |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Прошк прощения, что сразу не уточнил. Нужно найти указатель на узел, который указывает на current.
В узлах содержатся не цифровые значения, а строки. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата В узлах содержатся не цифровые значения, а строки. Зачем мне эта информация? Хоть записи, какая разница? Что, строки не сравниваются между собой так же, как и числа?Цитата Нужно найти указатель на узел, который указывает на current. И что же ты собрался возвращать, если у тебя искомое значение содержится в root-е? Нет у него предка, что дальше? |
XBugiman |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Зачем мне эта информация? Хоть записи, какая разница? Что, строки не сравниваются между собой так же, как и числа? И что же ты собрался возвращать, если у тебя искомое значение содержится в root-е? Нет у него предка, что дальше? Нужно сравнивать не строки, а условие, что искомый! указатель указывает на узел current, нужно вернуть этот указатель. Он в дереве по умолчанию присутствует |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
В Турбо Паскале над указателями не определены никакие операции, кроме сравнения с nil. То есть, тебе надо пройти по дереву, КАЖДЫЙ указатель преобразовать к виду, в котором его можно сравнить с другим указателем (я надеюсь, ты в курсе, что $83DF:$000B и $7FFD:$400B указывают на одну и ту же ячейку памяти, хотя как видишь, сами значения сегментной части и смещений у них совершенно разные), и сравнить с приведенным к тому же виду current... То есть, что-то вроде:
function findptr(root: ttree; curr: ttree): ttree;Функцию Convert попробуй написать сам... |
passat |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нужно сравнивать не строки, а условие, что искомый! указатель указывает на узел current, нужно вернуть этот указатель. Он в дереве по умолчанию присутствует Не слишком ли Вы завернули задание? Узел current при любом раскладе обязан содержать ключ. Какправило, ключ уникален. Исходя из такой постановки, надо пройти по дереву и найти родителя искомого узла. Поиск самый что ни есть обыкновенный по ключу. А что там является ключом - числа, строки или бегемоты - не имеет ни малейшего значения. |
XBugiman |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Да вообще то думаю не слишком.
Алгоритм применяется в Делфи, поэтому соот-но функции conv() ни к чему. Само задание, сделать игру 20 вопросов. А конкретно этот кусок алгоритма используется для определения вопроса на который пользователь ответил неверно, и требуется ввести новый вопрос и объект. Думаю стоит создать отдельную тему в разделе Делфи. Игра 20 вопросов |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 10:41 |