|
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 7
|
|
Бинарное дерево с помеченными вершинами22.06.2015, 22:38. Показов 2239. Ответов 24
Метки нет (Все метки)
Доброго времени суток!
Задача: Дано бинарное дерево, некоторые вершины которого помечены. Проверить, находятся ли последние на одном пути от корня к листу Как новичок, хотел бы попросить максимально простой код, буду благодарен любым пояснениям! Заранее спасибо!))
0
|
|
| 22.06.2015, 22:38 | |
|
Ответы с готовыми решениями:
24
Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру Преобразовать идеальное бинарное дерево в бинарное дерево поиска Бинарное дерево: как происходит добавления элемента в дерево с двумя параметрами |
| 22.06.2015, 22:59 | |
|
А что такое максимально простой код? Где меньше всего символов? Тогда с deriving Foldable чувствую можно нарисовать, только функцию свертки написать в 2 строчки явно.
ЗЫ я вам в соседнем разделе привел 2 варианта кода для этой же вашей задачи.
0
|
|
|
Модератор
|
||||||
| 22.06.2015, 23:13 | ||||||
0
|
||||||
| 22.06.2015, 23:18 | |
|
KolodeznyDiver, хотел написать что ваш код не будет работать, а потом подумал, что дело в великом и могучем русском языке - я понял задание так, что если например, у нас из огромного ветвистого дерева помечено всего 2 вершины, но существует путь без возвратов, включающий их, то результат должен быть тру.
0
|
|
| 23.06.2015, 00:19 | ||||||
Сообщение было отмечено Shelb как решение
Решение
Да, переоценил я возможности дерайва Фолдабла - катаморфизмы он не дерайвит, потому что работает на общем типе данных. Ну не страшно, написал руками 2 строчки - не честный фолд, конечно, но можно и честный, только лямбд добавится.
2
|
||||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|
| 23.06.2015, 01:09 | |
|
Я так понимаю, что требуется проверить существование пути, на котором находятся все помеченные вершины.
0
|
|
|
Модератор
|
||
| 23.06.2015, 01:25 | ||
|
0
|
||
| 23.06.2015, 03:10 | ||||||
|
KolodeznyDiver, вы правы. Хотя, может именно для библиотечного бинарного дерева и есть уже готовая свертка с учетом левого и правого узлов.
Добавлено через 1 час 27 минут Вот, собственно, апофигей сути (ТС же просил попроще ) - "котоморфизм всемогущий" ((С) DeeMon про трансдьюсеры в Clojure). Копипаста кота (без особого понимания) из http://traditio-ru.org/wiki/%D... 0%B7%D0%BC
Добавлено через 12 минут Вгляделся я в котоморфизм и узнал в нем моего простого кота парой постов выше, только в функцию свертки дерева передается не только функция преобразования, а и в паре с ней начальное значение для терминальных кейсов - тот самый 0. И если бы я сам своего кота делал универсальным, то сделал бы точно также.
2
|
||||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||||||
| 23.06.2015, 03:45 | ||||||
|
А есть в Хаскеле (GHCi) готовый тип Бинарное Дерево?
А как функцию a -> b -> m c поднять до m a -> m b -> m c ? Вобщем, я не знаю, как элегантно поднять g1, поэтому кроме g2 написал ещё и f2
0
|
||||||
|
Модератор
|
||||||||||||
| 23.06.2015, 11:25 | ||||||||||||
1
|
||||||||||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||||||
| 23.06.2015, 16:58 | |||||||
|
Мы сворачиваем дерево, но есть ситуация, когда свёртка бессмысленна (метки в двух разных ветвях дерева), поэтому Maybe. В данном случае задача простая, поэтому (внутри) Bool, но задача могла бы быть немного сложнее (например, нужно вернуть путь, содержащий все метки). p.s. А liftM2 чем от liftA2 отличается? Добавлено через 38 минут Не по теме: могу я записать в бесточечном стиле?
0
|
|||||||
| 23.06.2015, 17:05 | ||||||
|
Не по теме:
0
|
||||||
| 23.06.2015, 17:29 | |
|
0
|
|
| 23.06.2015, 17:41 | |
|
Не по теме: Эта-редукция, понимаешь....
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||||||||||||
| 23.06.2015, 20:57 | ||||||||||||
|
Попробуйте так скомпилировать:
сообщение компилятора
0
|
||||||||||||
| 23.06.2015, 21:26 | |||||||||||
|
Shamil1, правда ваша, я был у заказчиков и не проверил свой простой вариант. Тогда ловите такой, раз хотите бесточечную нотацию
![]()
Ну или вот так, что то же самое, только симметричнее
2
|
|||||||||||
|
Модератор
|
|
| 23.06.2015, 21:40 | |
|
0
|
|
| 23.06.2015, 21:40 | |
|
Помогаю со студенческими работами здесь
20
Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Бинарное дерево Бинарное дерево Бинарное дерево Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|