summaryrefslogtreecommitdiff
path: root/prolog/problems/trees/depthbt_2
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/trees/depthbt_2')
-rw-r--r--prolog/problems/trees/depthbt_2/common.py17
-rw-r--r--prolog/problems/trees/depthbt_2/en.py12
2 files changed, 29 insertions, 0 deletions
diff --git a/prolog/problems/trees/depthbt_2/common.py b/prolog/problems/trees/depthbt_2/common.py
new file mode 100644
index 0000000..9e26f21
--- /dev/null
+++ b/prolog/problems/trees/depthbt_2/common.py
@@ -0,0 +1,17 @@
+id = 140
+group = 'trees'
+number = 45
+visible = True
+facts = None
+
+solution = '''\
+depthBT(nil, 0).
+depthBT(b(L, _, R), D) :-
+ depthBT(L, DL),
+ depthBT(R, DR),
+ (DL >= DR,
+ D is DL + 1
+ ;
+ DL < DR,
+ D is DR + 1).
+'''
diff --git a/prolog/problems/trees/depthbt_2/en.py b/prolog/problems/trees/depthbt_2/en.py
new file mode 100644
index 0000000..37cb3cd
--- /dev/null
+++ b/prolog/problems/trees/depthbt_2/en.py
@@ -0,0 +1,12 @@
+id = 140
+name = 'depthBT/2'
+slug = 'find the depth of a binary tree'
+
+description = '''\
+<p><code>depthBT(T, D)</code>: <code>D</code> is the depth of the binary tree <code>T</code>.</p>
+<pre>
+ ?- depthBT(b(b(b(nil,4,nil),2,b(nil,6,nil)),1,nil), D).
+ D = 3.
+</pre>'''
+
+hint = {}