Created
April 3, 2024 06:57
-
-
Save bavadim/d5702e30b60ee76fa572e4901fd99879 to your computer and use it in GitHub Desktop.
Code snippet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% Определяем предикат для префиксного обхода дерева | |
preorder(Tree, List) :- preorder(Tree, [], List). | |
% Базовый случай: пустое дерево приводит к накопленному списку | |
preorder([], Acc, Acc). | |
% Рекурсивный случай: обрабатываем узел и его поддеревья | |
preorder([Node|Subtrees], Acc, List) :- | |
preorder(Subtrees, Acc, NewAcc), % Сначала обрабатываем поддеревья | |
List = [Node|NewAcc]. % Добавляем узел в начало списка | |
% Вспомогательный предикат для обработки списка поддеревьев | |
preorder([], Acc, Acc). % Базовый случай для списка поддеревьев | |
preorder([Tree|Trees], Acc, List) :- | |
preorder(Tree, Acc, NewAcc), % Обрабатываем первое поддерево | |
preorder(Trees, NewAcc, List). % Продолжаем с оставшимися поддеревьями |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment