-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path46.pl
28 lines (20 loc) · 934 Bytes
/
46.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Encabezado
% C# solucion / Python
%------------------------------------------------------------------------------
% Módulo: 50_programas
% Propósito: Elaborar 50 programas en Prolog
%
% Autor: Diaz Morales Katherine Giselle
% Fecha: 21 de octubre de 2024
%
% Descripción:
% Elaborar 50 programas en Prolog, usar templete.
--------------------------------------------------------------------------------------
- - - - - PROLOG - - - - -
46. Construir árboles binarios completamente equilibrados.
% Construye un árbol binario completamente equilibrado con N nodos.
% Un árbol completamente equilibrado tiene subárboles cuya diferencia de tamaño es como máximo 1.
cbal_tree(0, nil).
cbal_tree(N, t('x', L, R)) :- N > 0, N1 is N - 1, divide(N1, N2, N3), cbal_tree(N2, L), cbal_tree(N3, R).
% Divide el número de nodos entre los dos subárboles.
divide(N, N1, N2) :- N1 is N // 2, N2 is N - N1.