Spaces:
Running
Running
Upload code.txt
Browse files
code.txt
CHANGED
@@ -1316,6 +1316,70 @@ if c == 2 :
|
|
1316 |
print("OK")
|
1317 |
else :
|
1318 |
print("KO")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1319 |
;;;
|
1320 |
nombre de boites (N4)
|
1321 |
;;;
|
@@ -1409,6 +1473,70 @@ if c == 5 :
|
|
1409 |
else :
|
1410 |
print("KO")
|
1411 |
;;;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1412 |
sépare 0 et 1 (N3)
|
1413 |
;;;
|
1414 |
Écrire la fonction separe qui prend en paramètre un tableau tab dont les éléments sont des 0 et des 1. Cette fonction renvoie un tableau qui contient autant de 0 et de 1 qu'il y en a dans tab mais où tous les 0 sont placés en début de tableau et tous les 1 sont placés en fin de tableau.
|
@@ -1465,6 +1593,70 @@ if c == 2 :
|
|
1465 |
else :
|
1466 |
print("KO")
|
1467 |
;;;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1468 |
recherche dichotomique (N2)
|
1469 |
;;;
|
1470 |
Écrire une fonction dichotomie qui prend en paramètre un tableau tab d'entiers triés et un entier n. Cette fonction renvoie True si n est présent dans le tableau et False dans le cas contraire.
|
@@ -1491,6 +1683,70 @@ if c == 2 :
|
|
1491 |
else :
|
1492 |
print("KO")
|
1493 |
;;;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1494 |
palindrome (N3)
|
1495 |
;;;
|
1496 |
Un mot palindrome peut se lire de la même façon de gauche à droite ou de droite à gauche : kayak, radar, et non sont des mots palindromes.
|
@@ -1571,7 +1827,71 @@ g_node.insert_gauche('I')
|
|
1571 |
h_node = f_node.get_droit()
|
1572 |
h_node.insert_droit('J')
|
1573 |
c = 0
|
1574 |
-
if hauteur(racine):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1575 |
print("Test 1 : OK")
|
1576 |
c += 1
|
1577 |
else :
|
@@ -1581,3 +1901,4 @@ if c == 1 :
|
|
1581 |
else :
|
1582 |
print("KO")
|
1583 |
;;;
|
|
|
|
1316 |
print("OK")
|
1317 |
else :
|
1318 |
print("KO")
|
1319 |
+
;;;
|
1320 |
+
parcours suffixe d'un arbre binaire (N3 T)
|
1321 |
+
;;;
|
1322 |
+
Écrire une fonction parcours_suffixe qui prend en paramètre une instance de la classe arbre T et renvoie un tableau (de type list) contenant les valeurs des noeuds de l'arbre T classés dans un ordre compatible avec un parcours suffixe de l'arbre T.
|
1323 |
+
La classe Arbre possède 3 méthodes :
|
1324 |
+
- get_gauche() renvoie l'arbre gauche
|
1325 |
+
- get_droit() renvoie l'arbre droit
|
1326 |
+
- get_valeur() renvoie la valeur du noeud
|
1327 |
+
;;;
|
1328 |
+
class ArbreBinaire:
|
1329 |
+
def __init__(self, valeur):
|
1330 |
+
self.valeur = valeur
|
1331 |
+
self.enfant_gauche = None
|
1332 |
+
self.enfant_droit = None
|
1333 |
+
def insert_gauche(self, valeur):
|
1334 |
+
if self.enfant_gauche == None:
|
1335 |
+
self.enfant_gauche = ArbreBinaire(valeur)
|
1336 |
+
else:
|
1337 |
+
new_node = ArbreBinaire(valeur)
|
1338 |
+
new_node.enfant_gauche = self.enfant_gauche
|
1339 |
+
self.enfant_gauche = new_node
|
1340 |
+
def insert_droit(self, valeur):
|
1341 |
+
if self.enfant_droit == None:
|
1342 |
+
self.enfant_droit = ArbreBinaire(valeur)
|
1343 |
+
else:
|
1344 |
+
new_node = ArbreBinaire(valeur)
|
1345 |
+
new_node.enfant_droit = self.enfant_droit
|
1346 |
+
self.enfant_droit = new_node
|
1347 |
+
def get_valeur(self):
|
1348 |
+
return self.valeur
|
1349 |
+
def get_gauche(self):
|
1350 |
+
return self.enfant_gauche
|
1351 |
+
def get_droit(self):
|
1352 |
+
return self.enfant_droit
|
1353 |
+
racine = ArbreBinaire('A')
|
1354 |
+
racine.insert_gauche('B')
|
1355 |
+
racine.insert_droit('F')
|
1356 |
+
|
1357 |
+
b_node = racine.get_gauche()
|
1358 |
+
b_node.insert_gauche('C')
|
1359 |
+
b_node.insert_droit('D')
|
1360 |
+
|
1361 |
+
f_node = racine.get_droit()
|
1362 |
+
f_node.insert_gauche('G')
|
1363 |
+
f_node.insert_droit('H')
|
1364 |
+
|
1365 |
+
c_node = b_node.get_gauche()
|
1366 |
+
c_node.insert_droit('E')
|
1367 |
+
|
1368 |
+
g_node = f_node.get_gauche()
|
1369 |
+
g_node.insert_gauche('I')
|
1370 |
+
|
1371 |
+
h_node = f_node.get_droit()
|
1372 |
+
h_node.insert_droit('J')
|
1373 |
+
c = 0
|
1374 |
+
if parcours_suffixe(racine) == ['E', 'C', 'D', 'B', 'I', 'G', 'J', 'H', 'F', 'A']:
|
1375 |
+
print("Test 1 : OK")
|
1376 |
+
c += 1
|
1377 |
+
else :
|
1378 |
+
print("Test 1 : échec")
|
1379 |
+
if c == 1 :
|
1380 |
+
print("OK")
|
1381 |
+
else :
|
1382 |
+
print("KO")
|
1383 |
;;;
|
1384 |
nombre de boites (N4)
|
1385 |
;;;
|
|
|
1473 |
else :
|
1474 |
print("KO")
|
1475 |
;;;
|
1476 |
+
taille d'un arbre binaire (N2 T)
|
1477 |
+
;;;
|
1478 |
+
Écrire une fonction taille qui prend en paramètre une instance de la classe arbre T et renvoie la taille de l'arbre T.
|
1479 |
+
La classe Arbre possède 3 méthodes :
|
1480 |
+
- get_gauche() renvoie l'arbre gauche
|
1481 |
+
- get_droit() renvoie l'arbre droit
|
1482 |
+
- get_valeur() renvoie la valeur du noeud
|
1483 |
+
;;;
|
1484 |
+
class ArbreBinaire:
|
1485 |
+
def __init__(self, valeur):
|
1486 |
+
self.valeur = valeur
|
1487 |
+
self.enfant_gauche = None
|
1488 |
+
self.enfant_droit = None
|
1489 |
+
def insert_gauche(self, valeur):
|
1490 |
+
if self.enfant_gauche == None:
|
1491 |
+
self.enfant_gauche = ArbreBinaire(valeur)
|
1492 |
+
else:
|
1493 |
+
new_node = ArbreBinaire(valeur)
|
1494 |
+
new_node.enfant_gauche = self.enfant_gauche
|
1495 |
+
self.enfant_gauche = new_node
|
1496 |
+
def insert_droit(self, valeur):
|
1497 |
+
if self.enfant_droit == None:
|
1498 |
+
self.enfant_droit = ArbreBinaire(valeur)
|
1499 |
+
else:
|
1500 |
+
new_node = ArbreBinaire(valeur)
|
1501 |
+
new_node.enfant_droit = self.enfant_droit
|
1502 |
+
self.enfant_droit = new_node
|
1503 |
+
def get_valeur(self):
|
1504 |
+
return self.valeur
|
1505 |
+
def get_gauche(self):
|
1506 |
+
return self.enfant_gauche
|
1507 |
+
def get_droit(self):
|
1508 |
+
return self.enfant_droit
|
1509 |
+
racine = ArbreBinaire('A')
|
1510 |
+
racine.insert_gauche('B')
|
1511 |
+
racine.insert_droit('F')
|
1512 |
+
|
1513 |
+
b_node = racine.get_gauche()
|
1514 |
+
b_node.insert_gauche('C')
|
1515 |
+
b_node.insert_droit('D')
|
1516 |
+
|
1517 |
+
f_node = racine.get_droit()
|
1518 |
+
f_node.insert_gauche('G')
|
1519 |
+
f_node.insert_droit('H')
|
1520 |
+
|
1521 |
+
c_node = b_node.get_gauche()
|
1522 |
+
c_node.insert_droit('E')
|
1523 |
+
|
1524 |
+
g_node = f_node.get_gauche()
|
1525 |
+
g_node.insert_gauche('I')
|
1526 |
+
|
1527 |
+
h_node = f_node.get_droit()
|
1528 |
+
h_node.insert_droit('J')
|
1529 |
+
c = 0
|
1530 |
+
if taille(racine) == 10:
|
1531 |
+
print("Test 1 : OK")
|
1532 |
+
c += 1
|
1533 |
+
else :
|
1534 |
+
print("Test 1 : échec")
|
1535 |
+
if c == 1 :
|
1536 |
+
print("OK")
|
1537 |
+
else :
|
1538 |
+
print("KO")
|
1539 |
+
;;;
|
1540 |
sépare 0 et 1 (N3)
|
1541 |
;;;
|
1542 |
Écrire la fonction separe qui prend en paramètre un tableau tab dont les éléments sont des 0 et des 1. Cette fonction renvoie un tableau qui contient autant de 0 et de 1 qu'il y en a dans tab mais où tous les 0 sont placés en début de tableau et tous les 1 sont placés en fin de tableau.
|
|
|
1593 |
else :
|
1594 |
print("KO")
|
1595 |
;;;
|
1596 |
+
parcours préfixe d'un arbre binaire (N3 T)
|
1597 |
+
;;;
|
1598 |
+
Écrire une fonction parcours_prefixe qui prend en paramètre une instance de la classe arbre T et renvoie un tableau (de type list) contenant les valeurs des noeuds de l'arbre T classés dans un ordre compatible avec un parcours préfixe de l'arbre T.
|
1599 |
+
La classe Arbre possède 3 méthodes :
|
1600 |
+
- get_gauche() renvoie l'arbre gauche
|
1601 |
+
- get_droit() renvoie l'arbre droit
|
1602 |
+
- get_valeur() renvoie la valeur du noeud
|
1603 |
+
;;;
|
1604 |
+
class ArbreBinaire:
|
1605 |
+
def __init__(self, valeur):
|
1606 |
+
self.valeur = valeur
|
1607 |
+
self.enfant_gauche = None
|
1608 |
+
self.enfant_droit = None
|
1609 |
+
def insert_gauche(self, valeur):
|
1610 |
+
if self.enfant_gauche == None:
|
1611 |
+
self.enfant_gauche = ArbreBinaire(valeur)
|
1612 |
+
else:
|
1613 |
+
new_node = ArbreBinaire(valeur)
|
1614 |
+
new_node.enfant_gauche = self.enfant_gauche
|
1615 |
+
self.enfant_gauche = new_node
|
1616 |
+
def insert_droit(self, valeur):
|
1617 |
+
if self.enfant_droit == None:
|
1618 |
+
self.enfant_droit = ArbreBinaire(valeur)
|
1619 |
+
else:
|
1620 |
+
new_node = ArbreBinaire(valeur)
|
1621 |
+
new_node.enfant_droit = self.enfant_droit
|
1622 |
+
self.enfant_droit = new_node
|
1623 |
+
def get_valeur(self):
|
1624 |
+
return self.valeur
|
1625 |
+
def get_gauche(self):
|
1626 |
+
return self.enfant_gauche
|
1627 |
+
def get_droit(self):
|
1628 |
+
return self.enfant_droit
|
1629 |
+
racine = ArbreBinaire('A')
|
1630 |
+
racine.insert_gauche('B')
|
1631 |
+
racine.insert_droit('F')
|
1632 |
+
|
1633 |
+
b_node = racine.get_gauche()
|
1634 |
+
b_node.insert_gauche('C')
|
1635 |
+
b_node.insert_droit('D')
|
1636 |
+
|
1637 |
+
f_node = racine.get_droit()
|
1638 |
+
f_node.insert_gauche('G')
|
1639 |
+
f_node.insert_droit('H')
|
1640 |
+
|
1641 |
+
c_node = b_node.get_gauche()
|
1642 |
+
c_node.insert_droit('E')
|
1643 |
+
|
1644 |
+
g_node = f_node.get_gauche()
|
1645 |
+
g_node.insert_gauche('I')
|
1646 |
+
|
1647 |
+
h_node = f_node.get_droit()
|
1648 |
+
h_node.insert_droit('J')
|
1649 |
+
c = 0
|
1650 |
+
if parcours_prefixe(racine) == ['A', 'B', 'C', 'E', 'D', 'F', 'G', 'I', 'H', 'J']:
|
1651 |
+
print("Test 1 : OK")
|
1652 |
+
c += 1
|
1653 |
+
else :
|
1654 |
+
print("Test 1 : échec")
|
1655 |
+
if c == 1 :
|
1656 |
+
print("OK")
|
1657 |
+
else :
|
1658 |
+
print("KO")
|
1659 |
+
;;;
|
1660 |
recherche dichotomique (N2)
|
1661 |
;;;
|
1662 |
Écrire une fonction dichotomie qui prend en paramètre un tableau tab d'entiers triés et un entier n. Cette fonction renvoie True si n est présent dans le tableau et False dans le cas contraire.
|
|
|
1683 |
else :
|
1684 |
print("KO")
|
1685 |
;;;
|
1686 |
+
parcours infixe d'un arbre binaire (N3 T)
|
1687 |
+
;;;
|
1688 |
+
Écrire une fonction parcours_infixe qui prend en paramètre une instance de la classe arbre T et renvoie un tableau (de type list) contenant les valeurs des noeuds de l'arbre T classés dans un ordre compatible avec un parcours infixe de l'arbre T.
|
1689 |
+
La classe Arbre possède 3 méthodes :
|
1690 |
+
- get_gauche() renvoie l'arbre gauche
|
1691 |
+
- get_droit() renvoie l'arbre droit
|
1692 |
+
- get_valeur() renvoie la valeur du noeud
|
1693 |
+
;;;
|
1694 |
+
class ArbreBinaire:
|
1695 |
+
def __init__(self, valeur):
|
1696 |
+
self.valeur = valeur
|
1697 |
+
self.enfant_gauche = None
|
1698 |
+
self.enfant_droit = None
|
1699 |
+
def insert_gauche(self, valeur):
|
1700 |
+
if self.enfant_gauche == None:
|
1701 |
+
self.enfant_gauche = ArbreBinaire(valeur)
|
1702 |
+
else:
|
1703 |
+
new_node = ArbreBinaire(valeur)
|
1704 |
+
new_node.enfant_gauche = self.enfant_gauche
|
1705 |
+
self.enfant_gauche = new_node
|
1706 |
+
def insert_droit(self, valeur):
|
1707 |
+
if self.enfant_droit == None:
|
1708 |
+
self.enfant_droit = ArbreBinaire(valeur)
|
1709 |
+
else:
|
1710 |
+
new_node = ArbreBinaire(valeur)
|
1711 |
+
new_node.enfant_droit = self.enfant_droit
|
1712 |
+
self.enfant_droit = new_node
|
1713 |
+
def get_valeur(self):
|
1714 |
+
return self.valeur
|
1715 |
+
def get_gauche(self):
|
1716 |
+
return self.enfant_gauche
|
1717 |
+
def get_droit(self):
|
1718 |
+
return self.enfant_droit
|
1719 |
+
racine = ArbreBinaire('A')
|
1720 |
+
racine.insert_gauche('B')
|
1721 |
+
racine.insert_droit('F')
|
1722 |
+
|
1723 |
+
b_node = racine.get_gauche()
|
1724 |
+
b_node.insert_gauche('C')
|
1725 |
+
b_node.insert_droit('D')
|
1726 |
+
|
1727 |
+
f_node = racine.get_droit()
|
1728 |
+
f_node.insert_gauche('G')
|
1729 |
+
f_node.insert_droit('H')
|
1730 |
+
|
1731 |
+
c_node = b_node.get_gauche()
|
1732 |
+
c_node.insert_droit('E')
|
1733 |
+
|
1734 |
+
g_node = f_node.get_gauche()
|
1735 |
+
g_node.insert_gauche('I')
|
1736 |
+
|
1737 |
+
h_node = f_node.get_droit()
|
1738 |
+
h_node.insert_droit('J')
|
1739 |
+
c = 0
|
1740 |
+
if parcours_infixe(racine) == ['C', 'E', 'B', 'D', 'A', 'I', 'G', 'F', 'H', 'J']:
|
1741 |
+
print("Test 1 : OK")
|
1742 |
+
c += 1
|
1743 |
+
else :
|
1744 |
+
print("Test 1 : échec")
|
1745 |
+
if c == 1 :
|
1746 |
+
print("OK")
|
1747 |
+
else :
|
1748 |
+
print("KO")
|
1749 |
+
;;;
|
1750 |
palindrome (N3)
|
1751 |
;;;
|
1752 |
Un mot palindrome peut se lire de la même façon de gauche à droite ou de droite à gauche : kayak, radar, et non sont des mots palindromes.
|
|
|
1827 |
h_node = f_node.get_droit()
|
1828 |
h_node.insert_droit('J')
|
1829 |
c = 0
|
1830 |
+
if hauteur(racine) == 4:
|
1831 |
+
print("Test 1 : OK")
|
1832 |
+
c += 1
|
1833 |
+
else :
|
1834 |
+
print("Test 1 : échec")
|
1835 |
+
if c == 1 :
|
1836 |
+
print("OK")
|
1837 |
+
else :
|
1838 |
+
print("KO")
|
1839 |
+
;;;
|
1840 |
+
hauteur d'un arbre binaire (N2 T)
|
1841 |
+
;;;
|
1842 |
+
Écrire une fonction hauteur qui prend en paramètre une instance de la classe arbre T et renvoie la hauteur de l'arbre T.
|
1843 |
+
La classe Arbre possède 3 méthodes :
|
1844 |
+
- get_gauche() renvoie l'arbre gauche
|
1845 |
+
- get_droit() renvoie l'arbre droit
|
1846 |
+
- get_valeur() renvoie la valeur du noeud
|
1847 |
+
;;;
|
1848 |
+
class ArbreBinaire:
|
1849 |
+
def __init__(self, valeur):
|
1850 |
+
self.valeur = valeur
|
1851 |
+
self.enfant_gauche = None
|
1852 |
+
self.enfant_droit = None
|
1853 |
+
def insert_gauche(self, valeur):
|
1854 |
+
if self.enfant_gauche == None:
|
1855 |
+
self.enfant_gauche = ArbreBinaire(valeur)
|
1856 |
+
else:
|
1857 |
+
new_node = ArbreBinaire(valeur)
|
1858 |
+
new_node.enfant_gauche = self.enfant_gauche
|
1859 |
+
self.enfant_gauche = new_node
|
1860 |
+
def insert_droit(self, valeur):
|
1861 |
+
if self.enfant_droit == None:
|
1862 |
+
self.enfant_droit = ArbreBinaire(valeur)
|
1863 |
+
else:
|
1864 |
+
new_node = ArbreBinaire(valeur)
|
1865 |
+
new_node.enfant_droit = self.enfant_droit
|
1866 |
+
self.enfant_droit = new_node
|
1867 |
+
def get_valeur(self):
|
1868 |
+
return self.valeur
|
1869 |
+
def get_gauche(self):
|
1870 |
+
return self.enfant_gauche
|
1871 |
+
def get_droit(self):
|
1872 |
+
return self.enfant_droit
|
1873 |
+
racine = ArbreBinaire('A')
|
1874 |
+
racine.insert_gauche('B')
|
1875 |
+
racine.insert_droit('F')
|
1876 |
+
|
1877 |
+
b_node = racine.get_gauche()
|
1878 |
+
b_node.insert_gauche('C')
|
1879 |
+
b_node.insert_droit('D')
|
1880 |
+
|
1881 |
+
f_node = racine.get_droit()
|
1882 |
+
f_node.insert_gauche('G')
|
1883 |
+
f_node.insert_droit('H')
|
1884 |
+
|
1885 |
+
c_node = b_node.get_gauche()
|
1886 |
+
c_node.insert_droit('E')
|
1887 |
+
|
1888 |
+
g_node = f_node.get_gauche()
|
1889 |
+
g_node.insert_gauche('I')
|
1890 |
+
|
1891 |
+
h_node = f_node.get_droit()
|
1892 |
+
h_node.insert_droit('J')
|
1893 |
+
c = 0
|
1894 |
+
if hauteur(racine) == 4:
|
1895 |
print("Test 1 : OK")
|
1896 |
c += 1
|
1897 |
else :
|
|
|
1901 |
else :
|
1902 |
print("KO")
|
1903 |
;;;
|
1904 |
+
|