AnnalesALGO/Annales.ipynb
2024-06-01 12:33:34 +00:00

195 lines
4.2 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Partiel 2027"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 3"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def addwithsize(B, x):\n",
" if B == None:\n",
" return (BinTreeSize(x, None, None, 1), True)\n",
" else:\n",
" if x == B.key:\n",
" return (B, False)\n",
" elif x > B.key:\n",
" (B.left, res) = addwithsize(B.left, x)\n",
" if res == True:\n",
" B.size = B.size + 1\n",
" return (B, True)\n",
" else:\n",
" (B.right, res) = addwithsize(B.right, x)\n",
" if res == True:\n",
" B.size = B.size + 1\n",
" return (B, res)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 4"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def lca(B, x, y):\n",
" if x <= B.key:\n",
" if y >= B.key:\n",
" return B.key\n",
" else:\n",
" return __lca(B.left, x, y)\n",
" else:\n",
" if y >= B.key:\n",
" return __lca(B.right, x, y)\n",
" else:\n",
" return B.key"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 5"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def mystery(B, x, y):\n",
" if (B == None):\n",
" return None\n",
" else:\n",
" if B.key < x:\n",
" return mystery(B.right, x, y)\n",
" elif y < B.key:\n",
" return mystery(B.left, x, y)\n",
" else:\n",
" B.left = mystery(B.left, x, y)\n",
" B.right = mystery(B.right, x, y)\n",
" return B"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Partiel 2025"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 1\n",
"1. 14 / 4 / 2\n",
"2. 1 / 2\n",
"\n",
"### Exercise 3"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def __testBST(B, inf, sup):\n",
" if B == None:\n",
" return None\n",
" else:\n",
" if B.key > inf and B.key <= sup:\n",
" return __testBST(B.left, inf, B.key) and __testBST(B.right, B.key, sup)\n",
" else:\n",
" return False"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 4"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def __searchlevel(B, x):\n",
" if B == None:\n",
" return -1\n",
" else:\n",
" if x == B.key:\n",
" return 0\n",
" else:\n",
" if x < B.key:\n",
" res = __searchlevel(B.left, x)\n",
" else:\n",
" res = __searchlevel(B.right, x)\n",
" if res == -1:\n",
" return -1\n",
" else:\n",
" return 1 + res\n",
"\n",
"def generation(B, x, y):\n",
" res_x = __searchlevel(B, x)\n",
" if res_x == -1:\n",
" return False\n",
" else:\n",
" return res_x == __searchlevel(B, y)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.14"
}
},
"nbformat": 4,
"nbformat_minor": 4
}