Я борюсь с этой проблемой более 2 дней и все еще как-то не могу ее решить. Мне нужно написать функцию в SCHEME, которая берет список в дереве и отображает элементы в отсортированном порядке.Функция сортировки деревьев в схеме
Путь определяет дерева «(6 (левый ...) (справа ...))
Моей функции выбрать дерево:
(define (tree-sort tree)
(cond ((null? tree) '())
((> (car tree) (cadr tree))
(tree-sort (cadr tree)))
(else
(tree-sort (caddr tree))))
)
Так что я думаю, я должен также есть функция, которая сортирует самый полный список? Я действительно не понимаю, и это последний раз, когда мне придется иметь дело со схемой. Я никогда не использовал stackoverflow, поэтому, пожалуйста, извините меня, если формирование неправильное.
Прошу поблагодарить вас!
Разве дерево сортировано? Я имею в виду - когда вы вставляете элемент в дерево, вы гарантируете, что все элементы, меньшие, чем текущее значение в узле, идут влево, а все элементы больше, чем они идут вправо? –
Да, дерево сортировано. Я забыл указать это. – justMe
Обратите внимание, что это не функция сортировки по дереву, дерево уже отсортировано. То, что вы хотите сделать, - это пересечь его таким образом, чтобы элементы в обходе сортировались. См. Мой ответ. –