На этом шаге мы рассмотрим построение дерева.
Для построения дерева используется предикат while (X, D, D1), где X - добавляемый элемент, D - создаваемое дерево, D1 - дерево, необходимое для передачи параметра. В процессе формирования дерева каждый промежуточный результат (дерево с новым добавленным элементом) запоминается.
После того как выполнится условие окончания ввода элементов, из стека будут извлекаться эти промежуточные результаты, и потеряется значение сформированного дерева, поэтому и вводится дополнительный параметр D1 для того, чтобы запомнить созданное дерево. Условие окончания ввода - число 999. Пока оно не введено элемент добавляется в дерево, затем вводится следующий компонент и рекурсивно вызывается предикат while.
while (999, D): -!. while (X, D): - adlist (D, X, D1), readint (X1), while (X1, D1).
На следующем шаге мы рассмотрим поиск вершины в дереве.