dav74 commited on
Commit
47254be
·
verified ·
1 Parent(s): 4e2767d

Upload code.txt

Browse files
Files changed (1) hide show
  1. code.txt +322 -1
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
+