{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Partiel 2027","metadata":{}},{"cell_type":"markdown","source":"### Exercise 3","metadata":{}},{"cell_type":"code","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 else:\n if x > B.key:\n (B.right, res) = addwithsize(B.right, x)\n if res:\n B.size = B.size + 1\n else:\n (B.left, res) = addwithsize(B.left, x)\n if res:\n B.size = B.size + 1\n return (B, res)","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"cell_type":"markdown","source":"### Exercise 4","metadata":{}},{"cell_type":"code","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","metadata":{"trusted":false},"outputs":[],"execution_count":5},{"cell_type":"markdown","source":"### Exercise 5","metadata":{}},{"cell_type":"code","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","metadata":{"trusted":false},"outputs":[],"execution_count":6},{"cell_type":"markdown","source":"## Partiel 2025","metadata":{}},{"cell_type":"markdown","source":"### Exercise 1\n1. 14 / 4 / 2\n2. 1 / 2\n\n### Exercise 3","metadata":{}},{"cell_type":"code","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","metadata":{"trusted":false},"outputs":[],"execution_count":7},{"cell_type":"markdown","source":"### Exercise 4","metadata":{}},{"cell_type":"code","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\ndef 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)","metadata":{"trusted":false},"outputs":[],"execution_count":8},{"cell_type":"markdown","source":"## Exercice Sacha","metadata":{}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}