[{"data":1,"prerenderedAt":18759},["ShallowReactive",2],{"navigation":3,"chapter-cours-nsi-tale\u002Fta-structures-donnees":585,"chapter-index-nsi-tale\u002Fta-structures-donnees":13124,"chapter-memo-nsi-tale\u002Fta-structures-donnees":13241},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",[586,1942,3812,4937,10168],{"id":587,"title":457,"bo":588,"body":591,"description":1924,"eval":1925,"extension":1926,"labo":1925,"meta":1927,"navigation":729,"path":458,"quizzes":1928,"readingTime":704,"seo":1940,"stem":459,"tp":1925,"__hash__":1941},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation.md",[589,590],"TA04","TA05",{"type":592,"value":593,"toc":1915},"minimark",[594,599,616,631,670,684,688,691,771,774,819,830,865,876,929,960,964,981,1113,1119,1165,1186,1212,1233,1237,1259,1315,1325,1332,1342,1351,1355,1366,1401,1408,1616,1619,1662,1679,1704,1708,1787,1791,1799,1879,1907,1909,1911],[595,596,598],"h2",{"id":597},"pourquoi-des-objets","Pourquoi des objets ?",[600,601,602,603,607,608,611,612,615],"p",{},"Les structures de données du chapitre — files, piles, arbres, graphes — ont une\nparticularité commune : elles ",[604,605,606],"strong",{},"regroupent un état"," (les éléments stockés) ",[604,609,610],{},"et\nun comportement"," (les opérations qu'on peut faire dessus). Tant qu'on ne\nmanipule qu'une seule pile ou une seule file dans un programme jouet, on peut s'en\nsortir avec une liste Python et quelques fonctions libres. Dès qu'on en a\nplusieurs, ou qu'on veut ",[604,613,614],{},"protéger"," la cohérence interne, cette approche\ncraque : rien n'empêche un appelant distrait de modifier la liste interne et de\ncasser l'invariant.",[617,618,619],"note",{},[600,620,621,622,626,627,630],{},"Considérez un compte bancaire dont on suit le solde. Avec un simple dictionnaire\n",[623,624,625],"code",{},"{\"solde\": 100}",", n'importe qui peut écrire ",[623,628,629],{},"compte[\"solde\"] = -1000"," sans\nqu'aucune règle métier n'intervienne. Le compte n'a plus aucun garde-fou.",[600,632,633,634,637,638,641,642,645,646,649,650,653,654,657,658,661,662,665,666,669],{},"Le ",[604,635,636],{},"paradigme objet"," offre un cadre linguistique parfaitement adapté à cette\nsituation. Une ",[604,639,640],{},"classe"," réunit en un même bloc le ",[604,643,644],{},"plan"," des données internes\n(les ",[604,647,648],{},"attributs",") et le ",[604,651,652],{},"catalogue"," des opérations disponibles (les\n",[604,655,656],{},"méthodes","). Un ",[604,659,660],{},"objet"," est une instance concrète de ce plan — une analogie\nutile : la classe est le ",[604,663,664],{},"plan d'architecte",", l'objet est la ",[604,667,668],{},"maison\nconstruite",". Plusieurs maisons peuvent être bâties depuis un même plan, chacune\navec ses meubles à elle.",[600,671,672,673,676,677,680,681,683],{},"Cet item ",[674,675],"bo-ref",{"code":590}," ne demande ",[604,678,679],{},"ni"," l'héritage ",[604,682,679],{}," le\npolymorphisme. L'objectif est plus modeste : savoir écrire une définition de\nclasse Python, l'instancier, accéder à ses attributs et appeler ses méthodes.",[595,685,687],{"id":686},"classe-et-instance","Classe et instance",[600,689,690],{},"Reprenons le compte bancaire. Une définition minimale en Python :",[692,693,698],"pre",{"className":694,"code":695,"language":696,"meta":697,"style":697},"language-python shiki shiki-themes github-light github-light github-dark","class CompteBancaire:\n    \"\"\"Compte bancaire avec un solde et des opérations de dépôt\u002Fretrait.\"\"\"\n\n    def __init__(self, solde_initial=0):\n        self.solde = solde_initial          # attribut d'instance\n","python","",[623,699,700,717,724,731,753],{"__ignoreMap":697},[701,702,705,709,713],"span",{"class":703,"line":704},"line",1,[701,706,708],{"class":707},"s8jYJ","class",[701,710,712],{"class":711},"snPdu"," CompteBancaire",[701,714,716],{"class":715},"sxrX7",":\n",[701,718,720],{"class":703,"line":719},2,[701,721,723],{"class":722},"sIIMD","    \"\"\"Compte bancaire avec un solde et des opérations de dépôt\u002Fretrait.\"\"\"\n",[701,725,727],{"class":703,"line":726},3,[701,728,730],{"emptyLinePlaceholder":729},true,"\n",[701,732,734,737,741,744,747,750],{"class":703,"line":733},4,[701,735,736],{"class":707},"    def",[701,738,740],{"class":739},"sBjJW"," __init__",[701,742,743],{"class":715},"(self, solde_initial",[701,745,746],{"class":707},"=",[701,748,749],{"class":739},"0",[701,751,752],{"class":715},"):\n",[701,754,756,759,762,764,767],{"class":703,"line":755},5,[701,757,758],{"class":739},"        self",[701,760,761],{"class":715},".solde ",[701,763,746],{"class":707},[701,765,766],{"class":715}," solde_initial          ",[701,768,770],{"class":769},"sCsY4","# attribut d'instance\n",[600,772,773],{},"Trois éléments à comprendre :",[775,776,777,795,807],"ul",{},[778,779,780,781,785,786,790,791,794],"li",{},"Le mot-clé ",[604,782,783],{},[623,784,708],{}," introduit la définition, suivi du nom de la classe en\n",[787,788,789],"em",{},"PascalCase"," (",[623,792,793],{},"CompteBancaire",").",[778,796,797,802,803,806],{},[604,798,799],{},[623,800,801],{},"__init__"," est une méthode spéciale appelée à la création d'un objet — on\nl'appelle ",[604,804,805],{},"constructeur",". Son rôle : initialiser les attributs.",[778,808,809,814,815,818],{},[604,810,811],{},[623,812,813],{},"self"," est la convention Python pour désigner l'",[604,816,817],{},"objet courant"," au sein\nd'une méthode. C'est obligatoirement le premier paramètre.",[600,820,821,822,825,826,829],{},"L'",[604,823,824],{},"instanciation"," consiste à ",[604,827,828],{},"appeler la classe comme une fonction"," :",[692,831,833],{"className":694,"code":832,"language":696,"meta":697,"style":697},"c = CompteBancaire(100)   # appel implicite de __init__(self, solde_initial=100)\nprint(c.solde)            # 100\n",[623,834,835,854],{"__ignoreMap":697},[701,836,837,840,842,845,848,851],{"class":703,"line":704},[701,838,839],{"class":715},"c ",[701,841,746],{"class":707},[701,843,844],{"class":715}," CompteBancaire(",[701,846,847],{"class":739},"100",[701,849,850],{"class":715},")   ",[701,852,853],{"class":769},"# appel implicite de __init__(self, solde_initial=100)\n",[701,855,856,859,862],{"class":703,"line":719},[701,857,858],{"class":739},"print",[701,860,861],{"class":715},"(c.solde)            ",[701,863,864],{"class":769},"# 100\n",[600,866,867,868,871,872,875],{},"Chaque appel ",[623,869,870],{},"CompteBancaire(...)"," crée un objet ",[604,873,874],{},"indépendant"," : ses attributs\nlui sont propres.",[692,877,879],{"className":694,"code":878,"language":696,"meta":697,"style":697},"c1 = CompteBancaire(100)\nc2 = CompteBancaire(50)\nc1.solde = 200\nprint(c1.solde, c2.solde)   # 200 50 — c2 n'a pas bougé\n",[623,880,881,895,909,919],{"__ignoreMap":697},[701,882,883,886,888,890,892],{"class":703,"line":704},[701,884,885],{"class":715},"c1 ",[701,887,746],{"class":707},[701,889,844],{"class":715},[701,891,847],{"class":739},[701,893,894],{"class":715},")\n",[701,896,897,900,902,904,907],{"class":703,"line":719},[701,898,899],{"class":715},"c2 ",[701,901,746],{"class":707},[701,903,844],{"class":715},[701,905,906],{"class":739},"50",[701,908,894],{"class":715},[701,910,911,914,916],{"class":703,"line":726},[701,912,913],{"class":715},"c1.solde ",[701,915,746],{"class":707},[701,917,918],{"class":739}," 200\n",[701,920,921,923,926],{"class":703,"line":733},[701,922,858],{"class":739},[701,924,925],{"class":715},"(c1.solde, c2.solde)   ",[701,927,928],{"class":769},"# 200 50 — c2 n'a pas bougé\n",[930,931,934,947],"self-eval-qcm",{"correct":932,"slug":933},"1","interface-implementation-c1",[935,936,937],"template",{"v-slot:question":697},[600,938,939,940,943,944,946],{},"Dans ",[623,941,942],{},"c = CompteBancaire(100)",", à quel paramètre du ",[623,945,801],{}," la valeur 100 est-elle passée ?",[935,948,949],{"v-slot:choices":697},[775,950,951,954,957],{},[778,952,953],{},"à self",[778,955,956],{},"à solde_initial",[778,958,959],{},"aucun, c'est ignoré",[595,961,963],{"id":962},"méthodes-donner-un-comportement-aux-objets","Méthodes — donner un comportement aux objets",[600,965,966,967,970,971,974,975,977,978,980],{},"Une ",[604,968,969],{},"méthode"," est une fonction définie ",[604,972,973],{},"dans la classe"," ; elle agit sur les\nattributs de l'objet via ",[623,976,813],{},". Ajoutons à ",[623,979,793],{}," les opérations\nattendues d'un vrai compte :",[692,982,984],{"className":694,"code":983,"language":696,"meta":697,"style":697},"class CompteBancaire:\n    def __init__(self, solde_initial=0):\n        self.solde = solde_initial\n\n    def deposer(self, montant):\n        self.solde = self.solde + montant\n\n    def retirer(self, montant):\n        self.solde = self.solde - montant\n\n    def consulter(self):\n        return self.solde\n",[623,985,986,994,1008,1019,1023,1033,1053,1058,1068,1086,1091,1102],{"__ignoreMap":697},[701,987,988,990,992],{"class":703,"line":704},[701,989,708],{"class":707},[701,991,712],{"class":711},[701,993,716],{"class":715},[701,995,996,998,1000,1002,1004,1006],{"class":703,"line":719},[701,997,736],{"class":707},[701,999,740],{"class":739},[701,1001,743],{"class":715},[701,1003,746],{"class":707},[701,1005,749],{"class":739},[701,1007,752],{"class":715},[701,1009,1010,1012,1014,1016],{"class":703,"line":726},[701,1011,758],{"class":739},[701,1013,761],{"class":715},[701,1015,746],{"class":707},[701,1017,1018],{"class":715}," solde_initial\n",[701,1020,1021],{"class":703,"line":733},[701,1022,730],{"emptyLinePlaceholder":729},[701,1024,1025,1027,1030],{"class":703,"line":755},[701,1026,736],{"class":707},[701,1028,1029],{"class":711}," deposer",[701,1031,1032],{"class":715},"(self, montant):\n",[701,1034,1036,1038,1040,1042,1045,1047,1050],{"class":703,"line":1035},6,[701,1037,758],{"class":739},[701,1039,761],{"class":715},[701,1041,746],{"class":707},[701,1043,1044],{"class":739}," self",[701,1046,761],{"class":715},[701,1048,1049],{"class":707},"+",[701,1051,1052],{"class":715}," montant\n",[701,1054,1056],{"class":703,"line":1055},7,[701,1057,730],{"emptyLinePlaceholder":729},[701,1059,1061,1063,1066],{"class":703,"line":1060},8,[701,1062,736],{"class":707},[701,1064,1065],{"class":711}," retirer",[701,1067,1032],{"class":715},[701,1069,1071,1073,1075,1077,1079,1081,1084],{"class":703,"line":1070},9,[701,1072,758],{"class":739},[701,1074,761],{"class":715},[701,1076,746],{"class":707},[701,1078,1044],{"class":739},[701,1080,761],{"class":715},[701,1082,1083],{"class":707},"-",[701,1085,1052],{"class":715},[701,1087,1089],{"class":703,"line":1088},10,[701,1090,730],{"emptyLinePlaceholder":729},[701,1092,1094,1096,1099],{"class":703,"line":1093},11,[701,1095,736],{"class":707},[701,1097,1098],{"class":711}," consulter",[701,1100,1101],{"class":715},"(self):\n",[701,1103,1105,1108,1110],{"class":703,"line":1104},12,[701,1106,1107],{"class":707},"        return",[701,1109,1044],{"class":739},[701,1111,1112],{"class":715},".solde\n",[600,1114,1115,1116,829],{},"Une méthode s'appelle sur un objet avec la ",[604,1117,1118],{},"notation pointée",[692,1120,1122],{"className":694,"code":1121,"language":696,"meta":697,"style":697},"c = CompteBancaire(100)\nc.deposer(50)\nc.retirer(20)\nprint(c.consulter())   # 130\n",[623,1123,1124,1136,1145,1155],{"__ignoreMap":697},[701,1125,1126,1128,1130,1132,1134],{"class":703,"line":704},[701,1127,839],{"class":715},[701,1129,746],{"class":707},[701,1131,844],{"class":715},[701,1133,847],{"class":739},[701,1135,894],{"class":715},[701,1137,1138,1141,1143],{"class":703,"line":719},[701,1139,1140],{"class":715},"c.deposer(",[701,1142,906],{"class":739},[701,1144,894],{"class":715},[701,1146,1147,1150,1153],{"class":703,"line":726},[701,1148,1149],{"class":715},"c.retirer(",[701,1151,1152],{"class":739},"20",[701,1154,894],{"class":715},[701,1156,1157,1159,1162],{"class":703,"line":733},[701,1158,858],{"class":739},[701,1160,1161],{"class":715},"(c.consulter())   ",[701,1163,1164],{"class":769},"# 130\n",[600,1166,1167,1168,1171,1172,1175,1176,1179,1180,1182,1183,1185],{},"Quand vous écrivez ",[623,1169,1170],{},"c.deposer(50)",", Python traduit en\n",[623,1173,1174],{},"CompteBancaire.deposer(c, 50)"," — l'objet ",[623,1177,1178],{},"c"," est passé en premier argument, qui\nporte le nom ",[623,1181,813],{}," par convention. C'est tout le mystère de ",[623,1184,813],{},".",[930,1187,1189,1199],{"correct":932,"slug":1188},"interface-implementation-c2",[935,1190,1191],{"v-slot:question":697},[600,1192,939,1193,1195,1196,1198],{},[623,1194,1170],{},", à quoi correspond le paramètre ",[623,1197,813],{}," ?",[935,1200,1201],{"v-slot:choices":697},[775,1202,1203,1206,1209],{},[778,1204,1205],{},"à l'entier 50",[778,1207,1208],{},"à l'objet c",[778,1210,1211],{},"à la classe CompteBancaire",[1213,1214,1215],"tip",{},[600,1216,966,1217,1220,1221,1224,1225,1227,1228,1230,1231,1185],{},[604,1218,1219],{},"fonction libre"," vit hors de toute classe ; on l'appelle par son nom\n(",[623,1222,1223],{},"carre(5)","). Une ",[604,1226,969],{}," est définie dans une classe ; on l'appelle sur un\nobjet (",[623,1229,1170],{},") et elle a accès aux attributs de cet objet via ",[623,1232,813],{},[595,1234,1236],{"id":1235},"linterface-dune-classe","L'interface d'une classe",[600,1238,1239,1240,1243,1244,1247,1248,1251,1252,1255,1256,1258],{},"Une classe ",[604,1241,1242],{},"expose"," vers l'extérieur un ensemble d'opérations — son\n",[604,1245,1246],{},"interface"," — et ",[604,1249,1250],{},"cache"," vers l'intérieur les détails de réalisation — son\n",[604,1253,1254],{},"implémentation",". Pour ",[623,1257,793],{},", l'interface naturelle est :",[1260,1261,1262,1275],"table",{},[1263,1264,1265],"thead",{},[1266,1267,1268,1272],"tr",{},[1269,1270,1271],"th",{},"Méthode",[1269,1273,1274],{},"Effet attendu",[1276,1277,1278,1292,1305],"tbody",{},[1266,1279,1280,1286],{},[1281,1282,1283],"td",{},[623,1284,1285],{},"deposer(montant)",[1281,1287,1288,1289,1185],{},"Augmente le solde de ",[623,1290,1291],{},"montant",[1266,1293,1294,1299],{},[1281,1295,1296],{},[623,1297,1298],{},"retirer(montant)",[1281,1300,1301,1302,1304],{},"Diminue le solde de ",[623,1303,1291],{},", à condition qu'il reste positif.",[1266,1306,1307,1312],{},[1281,1308,1309],{},[623,1310,1311],{},"consulter()",[1281,1313,1314],{},"Renvoie le solde courant.",[600,1316,1317,1318,1321,1322,1324],{},"Cette spécification — le ",[604,1319,1320],{},"contrat"," que la classe promet de respecter — est\nindépendante de la façon dont elle est codée. C'est elle que voit l'utilisateur\nde la classe ; lui n'a pas à savoir si le solde est stocké dans un entier, dans\nun flottant, ou dans une base de données distante. Tant que ",[623,1323,1311],{},"\nrenvoie le bon nombre, le contrat est tenu.",[600,1326,1327,1328,1331],{},"Une analogie utile : l'interface est un ",[604,1329,1330],{},"contrat de sous-traitance",". Le\ndonneur d'ordre liste ce qu'il veut recevoir (les opérations et leur\ncomportement) ; peu lui importe quelle usine fabrique, ni avec quelle machine.\nTant que le contrat est respecté, on peut changer d'usine sans rien renégocier\nen amont.",[600,1333,1334,1335,1337,1338,1341],{},"Cette séparation est au cœur de ",[674,1336],{"code":589},". Elle vous permet de\nraisonner sur un programme sans dépendre du code interne d'une classe, et\nd'",[604,1339,1340],{},"échanger une implémentation par une autre"," sans rien casser ailleurs.",[617,1343,1344],{},[600,1345,1346,1347,1350],{},"Au cours suivant, on verra que la ",[604,1348,1349],{},"file FIFO"," admet plusieurs implémentations\nqui exposent toutes la même interface — c'est l'illustration canonique de cette\nrègle. Pour l'instant, on reste sur le compte bancaire pour poser le\nvocabulaire.",[595,1352,1354],{"id":1353},"encapsulation-protéger-les-invariants","Encapsulation — protéger les invariants",[600,1356,1357,1358,1361,1362,1365],{},"Un ",[604,1359,1360],{},"invariant"," est une propriété que les attributs d'un objet doivent\ntoujours vérifier. Pour notre compte : « le solde reste positif ou nul ». La\nversion actuelle de ",[623,1363,1364],{},"retirer"," ne protège rien :",[692,1367,1369],{"className":694,"code":1368,"language":696,"meta":697,"style":697},"c = CompteBancaire(50)\nc.retirer(200)\nprint(c.consulter())   # -150  — invariant brisé\n",[623,1370,1371,1383,1392],{"__ignoreMap":697},[701,1372,1373,1375,1377,1379,1381],{"class":703,"line":704},[701,1374,839],{"class":715},[701,1376,746],{"class":707},[701,1378,844],{"class":715},[701,1380,906],{"class":739},[701,1382,894],{"class":715},[701,1384,1385,1387,1390],{"class":703,"line":719},[701,1386,1149],{"class":715},[701,1388,1389],{"class":739},"200",[701,1391,894],{"class":715},[701,1393,1394,1396,1398],{"class":703,"line":726},[701,1395,858],{"class":739},[701,1397,1161],{"class":715},[701,1399,1400],{"class":769},"# -150  — invariant brisé\n",[600,1402,1403,1404,1407],{},"Le rôle de l'",[604,1405,1406],{},"encapsulation"," est de placer le contrôle dans la méthode, à\nl'unique endroit où la modification se fait :",[692,1409,1411],{"className":694,"code":1410,"language":696,"meta":697,"style":697},"class CompteBancaire:\n    def __init__(self, solde_initial=0):\n        self._solde = solde_initial   # attribut \"interne\", préfixe _ par convention\n\n    def deposer(self, montant):\n        if montant \u003C= 0:\n            raise ValueError(\"le montant doit être strictement positif\")\n        self._solde = self._solde + montant\n\n    def retirer(self, montant):\n        if montant \u003C= 0:\n            raise ValueError(\"le montant doit être strictement positif\")\n        if montant > self._solde:\n            raise ValueError(\"solde insuffisant\")\n        self._solde = self._solde - montant\n\n    def consulter(self):\n        return self._solde\n",[623,1412,1413,1421,1435,1450,1454,1462,1478,1494,1510,1514,1522,1534,1546,1561,1575,1592,1597,1606],{"__ignoreMap":697},[701,1414,1415,1417,1419],{"class":703,"line":704},[701,1416,708],{"class":707},[701,1418,712],{"class":711},[701,1420,716],{"class":715},[701,1422,1423,1425,1427,1429,1431,1433],{"class":703,"line":719},[701,1424,736],{"class":707},[701,1426,740],{"class":739},[701,1428,743],{"class":715},[701,1430,746],{"class":707},[701,1432,749],{"class":739},[701,1434,752],{"class":715},[701,1436,1437,1439,1442,1444,1447],{"class":703,"line":726},[701,1438,758],{"class":739},[701,1440,1441],{"class":715},"._solde ",[701,1443,746],{"class":707},[701,1445,1446],{"class":715}," solde_initial   ",[701,1448,1449],{"class":769},"# attribut \"interne\", préfixe _ par convention\n",[701,1451,1452],{"class":703,"line":733},[701,1453,730],{"emptyLinePlaceholder":729},[701,1455,1456,1458,1460],{"class":703,"line":755},[701,1457,736],{"class":707},[701,1459,1029],{"class":711},[701,1461,1032],{"class":715},[701,1463,1464,1467,1470,1473,1476],{"class":703,"line":1035},[701,1465,1466],{"class":707},"        if",[701,1468,1469],{"class":715}," montant ",[701,1471,1472],{"class":707},"\u003C=",[701,1474,1475],{"class":739}," 0",[701,1477,716],{"class":715},[701,1479,1480,1483,1486,1489,1492],{"class":703,"line":1055},[701,1481,1482],{"class":707},"            raise",[701,1484,1485],{"class":739}," ValueError",[701,1487,1488],{"class":715},"(",[701,1490,1491],{"class":722},"\"le montant doit être strictement positif\"",[701,1493,894],{"class":715},[701,1495,1496,1498,1500,1502,1504,1506,1508],{"class":703,"line":1060},[701,1497,758],{"class":739},[701,1499,1441],{"class":715},[701,1501,746],{"class":707},[701,1503,1044],{"class":739},[701,1505,1441],{"class":715},[701,1507,1049],{"class":707},[701,1509,1052],{"class":715},[701,1511,1512],{"class":703,"line":1070},[701,1513,730],{"emptyLinePlaceholder":729},[701,1515,1516,1518,1520],{"class":703,"line":1088},[701,1517,736],{"class":707},[701,1519,1065],{"class":711},[701,1521,1032],{"class":715},[701,1523,1524,1526,1528,1530,1532],{"class":703,"line":1093},[701,1525,1466],{"class":707},[701,1527,1469],{"class":715},[701,1529,1472],{"class":707},[701,1531,1475],{"class":739},[701,1533,716],{"class":715},[701,1535,1536,1538,1540,1542,1544],{"class":703,"line":1104},[701,1537,1482],{"class":707},[701,1539,1485],{"class":739},[701,1541,1488],{"class":715},[701,1543,1491],{"class":722},[701,1545,894],{"class":715},[701,1547,1549,1551,1553,1556,1558],{"class":703,"line":1548},13,[701,1550,1466],{"class":707},[701,1552,1469],{"class":715},[701,1554,1555],{"class":707},">",[701,1557,1044],{"class":739},[701,1559,1560],{"class":715},"._solde:\n",[701,1562,1564,1566,1568,1570,1573],{"class":703,"line":1563},14,[701,1565,1482],{"class":707},[701,1567,1485],{"class":739},[701,1569,1488],{"class":715},[701,1571,1572],{"class":722},"\"solde insuffisant\"",[701,1574,894],{"class":715},[701,1576,1578,1580,1582,1584,1586,1588,1590],{"class":703,"line":1577},15,[701,1579,758],{"class":739},[701,1581,1441],{"class":715},[701,1583,746],{"class":707},[701,1585,1044],{"class":739},[701,1587,1441],{"class":715},[701,1589,1083],{"class":707},[701,1591,1052],{"class":715},[701,1593,1595],{"class":703,"line":1594},16,[701,1596,730],{"emptyLinePlaceholder":729},[701,1598,1600,1602,1604],{"class":703,"line":1599},17,[701,1601,736],{"class":707},[701,1603,1098],{"class":711},[701,1605,1101],{"class":715},[701,1607,1609,1611,1613],{"class":703,"line":1608},18,[701,1610,1107],{"class":707},[701,1612,1044],{"class":739},[701,1614,1615],{"class":715},"._solde\n",[600,1617,1618],{},"Deux changements méritent un commentaire :",[775,1620,1621,1654],{},[778,1622,1623,1624,1629,1630,1633,1634,1637,1638,1641,1642,1645,1646,1649,1650,1653],{},"L'attribut s'appelle désormais ",[604,1625,1626],{},[623,1627,1628],{},"_solde"," avec un préfixe ",[623,1631,1632],{},"_",". Cette\n",[604,1635,1636],{},"convention"," signale au lecteur que l'attribut est ",[604,1639,1640],{},"interne à la classe","\net qu'on ne doit pas le toucher de l'extérieur. Python n'impose ",[604,1643,1644],{},"aucune","\nprotection technique — vous pouvez écrire ",[623,1647,1648],{},"c._solde = -1000"," et cela marchera.\nLe préfixe est un ",[604,1651,1652],{},"engagement social"," entre le rédacteur de la classe et\nson utilisateur.",[778,1655,1656,1657,1661],{},"L'accès à la valeur passe par la méthode ",[604,1658,1659],{},[623,1660,1311],{}," plutôt que par\nl'attribut. Si demain on stocke le solde différemment (en centimes au lieu\nd'euros, par exemple), l'utilisateur ne s'en rendra pas compte — seule la\nméthode change.",[1663,1664,1665],"warning",{},[600,1666,1667,1668,1670,1671,1674,1675,1678],{},"Le préfixe ",[623,1669,1632],{}," n'est ",[604,1672,1673],{},"pas"," une protection technique. Python n'empêche pas\nl'accès. C'est une convention. Si vous lisez ",[623,1676,1677],{},"c._solde"," depuis l'extérieur,\nvous brisez l'abstraction même si Python vous laisse faire — et vous perdez\nla garantie que les invariants tiennent.",[930,1680,1682,1691],{"correct":932,"slug":1681},"interface-implementation-c3",[935,1683,1684],{"v-slot:question":697},[600,1685,1686,1687,1690],{},"Que se passe-t-il à l'exécution de ",[623,1688,1689],{},"c.retirer(200)"," sur un compte au solde 50, dans la version encapsulée ?",[935,1692,1693],{"v-slot:choices":697},[775,1694,1695,1698,1701],{},[778,1696,1697],{},"le solde devient -150",[778,1699,1700],{},"une exception ValueError est levée",[778,1702,1703],{},"le retrait est ignoré silencieusement",[595,1705,1707],{"id":1706},"conventions-et-notations","Conventions et notations",[775,1709,1710,1727,1739,1760],{},[778,1711,1712,1715,1716,790,1718,1720,1721,1720,1724,794],{},[604,1713,1714],{},"Nom de classe"," : ",[787,1717,789],{},[623,1719,793],{},", ",[623,1722,1723],{},"Pile",[623,1725,1726],{},"Noeud",[778,1728,1729,1732,1733,1735,1736,794],{},[604,1730,1731],{},"Attribut interne"," : préfixe ",[623,1734,1632],{}," indiquant « privé par convention »\n(",[623,1737,1738],{},"self._solde",[778,1740,1741,1744,1745,790,1748,1720,1750,1720,1753,1756,1757,1759],{},[604,1742,1743],{},"Méthode magique"," : encadrée par ",[623,1746,1747],{},"__",[623,1749,801],{},[623,1751,1752],{},"__len__",[623,1754,1755],{},"__repr__",").\nVous verrez ",[623,1758,801],{}," partout dans le chapitre ; les autres sont optionnelles.",[778,1761,1762,1715,1765,1720,1768,1720,1770,1720,1773,1776,1777,1780,1781,1720,1784,794],{},[604,1763,1764],{},"Une méthode = un verbe",[623,1766,1767],{},"deposer",[623,1769,1364],{},[623,1771,1772],{},"consulter",[623,1774,1775],{},"enfiler",",\n",[623,1778,1779],{},"defiler",". L'attribut est un nom (",[623,1782,1783],{},"solde",[623,1785,1786],{},"valeur",[595,1788,1790],{"id":1789},"pour-aller-plus-loin","Pour aller plus loin",[600,1792,1793,1794,1796,1797,829],{},"La méthode spéciale ",[623,1795,1755],{}," permet de définir comment un objet s'affiche\nquand on le ",[623,1798,858],{},[692,1800,1802],{"className":694,"code":1801,"language":696,"meta":697,"style":697},"class CompteBancaire:\n    # ... reste de la classe inchangé ...\n\n    def __repr__(self):\n        return f\"CompteBancaire(solde={self._solde})\"\n\nc = CompteBancaire(150)\nprint(c)   # CompteBancaire(solde=150)\n",[623,1803,1804,1812,1817,1821,1830,1852,1856,1869],{"__ignoreMap":697},[701,1805,1806,1808,1810],{"class":703,"line":704},[701,1807,708],{"class":707},[701,1809,712],{"class":711},[701,1811,716],{"class":715},[701,1813,1814],{"class":703,"line":719},[701,1815,1816],{"class":769},"    # ... reste de la classe inchangé ...\n",[701,1818,1819],{"class":703,"line":726},[701,1820,730],{"emptyLinePlaceholder":729},[701,1822,1823,1825,1828],{"class":703,"line":733},[701,1824,736],{"class":707},[701,1826,1827],{"class":739}," __repr__",[701,1829,1101],{"class":715},[701,1831,1832,1834,1837,1840,1843,1846,1849],{"class":703,"line":755},[701,1833,1107],{"class":707},[701,1835,1836],{"class":707}," f",[701,1838,1839],{"class":722},"\"CompteBancaire(solde=",[701,1841,1842],{"class":739},"{self",[701,1844,1845],{"class":715},"._solde",[701,1847,1848],{"class":739},"}",[701,1850,1851],{"class":722},")\"\n",[701,1853,1854],{"class":703,"line":1035},[701,1855,730],{"emptyLinePlaceholder":729},[701,1857,1858,1860,1862,1864,1867],{"class":703,"line":1055},[701,1859,839],{"class":715},[701,1861,746],{"class":707},[701,1863,844],{"class":715},[701,1865,1866],{"class":739},"150",[701,1868,894],{"class":715},[701,1870,1871,1873,1876],{"class":703,"line":1060},[701,1872,858],{"class":739},[701,1874,1875],{"class":715},"(c)   ",[701,1877,1878],{"class":769},"# CompteBancaire(solde=150)\n",[600,1880,1881,1882,1885,1886,1889,1890,1892,1893,1896,1897,1899,1900,1885,1903,1906],{},"Vous reverrez les classes dans tout le reste du chapitre : ",[623,1883,1884],{},"FileTableau"," et\n",[623,1887,1888],{},"FileDeuxPiles"," au cours suivant pour illustrer la pluralité des\nimplémentations ; ",[623,1891,1723],{}," (LIFO) et ",[623,1894,1895],{},"File"," (FIFO) au cours 3 pour les structures\nlinéaires canoniques ; ",[623,1898,1726],{}," au cours 4 pour les arbres ; ",[623,1901,1902],{},"GrapheMatrice",[623,1904,1905],{},"GrapheListe"," au cours 5 pour les graphes. Le vocabulaire posé ici sera utilisé\npartout.",[674,1908],{"code":590},[674,1910],{"code":589},[1912,1913,1914],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":1916},[1917,1918,1919,1920,1921,1922,1923],{"id":597,"depth":719,"text":598},{"id":686,"depth":719,"text":687},{"id":962,"depth":719,"text":963},{"id":1235,"depth":719,"text":1236},{"id":1353,"depth":719,"text":1354},{"id":1706,"depth":719,"text":1707},{"id":1789,"depth":719,"text":1790},"Introduire d'un seul tenant la programmation orientée objet et la distinction interface \u002F implémentation — l'outillage qui structurera tout le chapitre.",null,"md",{},[1929,1934,1937],{"slug":933,"kind":1930,"question":1931,"choices":1932,"correct":932,"multi":1933,"explanation":697},"qcm","Dans c = CompteBancaire(100), à quel paramètre du __init__ la valeur 100 est-elle passée ?",[953,956,959],false,{"slug":1188,"kind":1930,"question":1935,"choices":1936,"correct":932,"multi":1933,"explanation":697},"Dans c.deposer(50), à quoi correspond le paramètre self ?",[1205,1208,1211],{"slug":1681,"kind":1930,"question":1938,"choices":1939,"correct":932,"multi":1933,"explanation":697},"Que se passe-t-il à l'exécution de c.retirer(200) sur un compte au solde 50, dans la version encapsulée ?",[1697,1700,1703],{"title":457,"description":1924},"C76MMYvwhVXf-XIF9u9kpRgCqjxbkeIiY7BeOrTpfFQ",{"id":1943,"title":461,"bo":1944,"body":1945,"description":3803,"eval":1925,"extension":1926,"labo":1925,"meta":3804,"navigation":729,"path":462,"quizzes":3805,"readingTime":704,"seo":3810,"stem":463,"tp":1925,"__hash__":3811},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure.md",[589],{"type":592,"value":1946,"toc":3793},[1947,1951,1962,1978,1990,1994,2012,2015,2102,2111,2132,2136,2139,2322,2325,2396,2401,2571,2585,2589,2614,2844,2847,2909,2916,2937,2941,3008,3185,3196,3200,3224,3270,3285,3289,3654,3671,3673,3723,3782,3789,3791],[595,1948,1950],{"id":1949},"introduction","Introduction",[600,1952,1953,1954,1956,1957,1959,1960,1185],{},"Le cours précédent a posé un principe : une ",[604,1955,1246],{}," est un contrat, une\n",[604,1958,1254],{}," est un code qui le réalise — et un même contrat admet\nplusieurs implémentations. Le moment est venu d'en faire l'expérience sur un\nexemple canonique de Terminale : la ",[604,1961,1349],{},[600,1963,1964,1965,1967,1968,1970,1971,1974,1975,1977],{},"Vous allez voir deux classes, ",[623,1966,1884],{}," et ",[623,1969,1888],{},", qui exposent la\nmême interface — quatre méthodes au comportement strictement identique du point\nde vue de l'utilisateur — mais dont les performances ",[604,1972,1973],{},"diffèrent radicalement",".\nC'est l'illustration parfaite de l'item ",[674,1976],{"code":589}," : « écrire plusieurs\nimplémentations d'une même structure de données ».",[617,1979,1980],{},[600,1981,1982,1983,1720,1985,1776,1987,1989],{},"Ce cours suppose acquis le vocabulaire du cours précédent (",[623,1984,708],{},[623,1986,801],{},[623,1988,813],{},", méthode, encapsulation). Si l'un de ces termes vous échappe, retournez\nau cours 1.",[595,1991,1993],{"id":1992},"linterface-dune-file-fifo","L'interface d'une file FIFO",[600,1995,966,1996,1999,2000,2003,2004,2007,2008,2011],{},[604,1997,1998],{},"file"," (en anglais ",[787,2001,2002],{},"queue",") est une structure linéaire au comportement\n",[604,2005,2006],{},"FIFO"," — ",[787,2009,2010],{},"First In, First Out",". L'analogie est immédiate : la file d'attente\nà la boulangerie. On entre par la queue, on sort par la tête, on ne double pas.",[600,2013,2014],{},"Son interface comporte typiquement quatre opérations :",[1260,2016,2017,2028],{},[1263,2018,2019],{},[1266,2020,2021,2023,2026],{},[1269,2022,1271],{},[1269,2024,2025],{},"Signature",[1269,2027,1274],{},[1276,2029,2030,2049,2064,2087],{},[1266,2031,2032,2037,2042],{},[1281,2033,2034],{},[623,2035,2036],{},"enfiler(x)",[1281,2038,2039],{},[623,2040,2041],{},"File × Élément → File",[1281,2043,2044,2045,2048],{},"Ajoute ",[623,2046,2047],{},"x"," à la queue de la file.",[1266,2050,2051,2056,2061],{},[1281,2052,2053],{},[623,2054,2055],{},"defiler()",[1281,2057,2058],{},[623,2059,2060],{},"File → Élément",[1281,2062,2063],{},"Retire et renvoie l'élément de tête ; lève une exception si la file est vide.",[1266,2065,2066,2071,2076],{},[1281,2067,2068],{},[623,2069,2070],{},"est_vide()",[1281,2072,2073],{},[623,2074,2075],{},"File → Booléen",[1281,2077,2078,2079,2082,2083,2086],{},"Renvoie ",[623,2080,2081],{},"True"," si la file est vide, ",[623,2084,2085],{},"False"," sinon.",[1266,2088,2089,2094,2099],{},[1281,2090,2091],{},[623,2092,2093],{},"taille()",[1281,2095,2096],{},[623,2097,2098],{},"File → Entier",[1281,2100,2101],{},"Renvoie le nombre d'éléments.",[617,2103,2104],{},[600,2105,2106,2107,2110],{},"Cette interface ne dit rien sur la mémoire utilisée ni sur la complexité. Elle\ndécrit ",[604,2108,2109],{},"un contrat",". Une implémentation qui le respecte est valable, même si\nelle est lente.",[930,2112,2114,2119],{"correct":932,"slug":2113},"implementer-une-structure-c1",[935,2115,2116],{"v-slot:question":697},[600,2117,2118],{},"Dans une file FIFO, le prochain élément à sortir est…",[935,2120,2121],{"v-slot:choices":697},[775,2122,2123,2126,2129],{},[778,2124,2125],{},"le dernier entré",[778,2127,2128],{},"le premier entré",[778,2130,2131],{},"celui de plus grande valeur",[595,2133,2135],{"id":2134},"implémentation-1-avec-un-tableau-liste-python","Implémentation 1 — avec un tableau (liste Python)",[600,2137,2138],{},"La représentation la plus naturelle utilise une liste Python comme stockage\ninterne. Les éléments sont rangés dans l'ordre d'arrivée ; on enfile à la fin,\non défile au début.",[692,2140,2142],{"className":694,"code":2141,"language":696,"meta":697,"style":697},"class FileTableau:\n    \"\"\"File FIFO implémentée par une liste Python.\"\"\"\n\n    def __init__(self):\n        self._data = []\n\n    def enfiler(self, x):\n        self._data.append(x)            # O(1) amorti\n\n    def defiler(self):\n        if not self._data:\n            raise IndexError(\"file vide\")\n        return self._data.pop(0)        # O(n) — décalage de tous les éléments\n\n    def est_vide(self):\n        return len(self._data) == 0\n\n    def taille(self):\n        return len(self._data)\n",[623,2143,2144,2153,2158,2162,2170,2182,2186,2196,2206,2210,2219,2231,2245,2262,2266,2275,2295,2299,2308],{"__ignoreMap":697},[701,2145,2146,2148,2151],{"class":703,"line":704},[701,2147,708],{"class":707},[701,2149,2150],{"class":711}," FileTableau",[701,2152,716],{"class":715},[701,2154,2155],{"class":703,"line":719},[701,2156,2157],{"class":722},"    \"\"\"File FIFO implémentée par une liste Python.\"\"\"\n",[701,2159,2160],{"class":703,"line":726},[701,2161,730],{"emptyLinePlaceholder":729},[701,2163,2164,2166,2168],{"class":703,"line":733},[701,2165,736],{"class":707},[701,2167,740],{"class":739},[701,2169,1101],{"class":715},[701,2171,2172,2174,2177,2179],{"class":703,"line":755},[701,2173,758],{"class":739},[701,2175,2176],{"class":715},"._data ",[701,2178,746],{"class":707},[701,2180,2181],{"class":715}," []\n",[701,2183,2184],{"class":703,"line":1035},[701,2185,730],{"emptyLinePlaceholder":729},[701,2187,2188,2190,2193],{"class":703,"line":1055},[701,2189,736],{"class":707},[701,2191,2192],{"class":711}," enfiler",[701,2194,2195],{"class":715},"(self, x):\n",[701,2197,2198,2200,2203],{"class":703,"line":1060},[701,2199,758],{"class":739},[701,2201,2202],{"class":715},"._data.append(x)            ",[701,2204,2205],{"class":769},"# O(1) amorti\n",[701,2207,2208],{"class":703,"line":1070},[701,2209,730],{"emptyLinePlaceholder":729},[701,2211,2212,2214,2217],{"class":703,"line":1088},[701,2213,736],{"class":707},[701,2215,2216],{"class":711}," defiler",[701,2218,1101],{"class":715},[701,2220,2221,2223,2226,2228],{"class":703,"line":1093},[701,2222,1466],{"class":707},[701,2224,2225],{"class":707}," not",[701,2227,1044],{"class":739},[701,2229,2230],{"class":715},"._data:\n",[701,2232,2233,2235,2238,2240,2243],{"class":703,"line":1104},[701,2234,1482],{"class":707},[701,2236,2237],{"class":739}," IndexError",[701,2239,1488],{"class":715},[701,2241,2242],{"class":722},"\"file vide\"",[701,2244,894],{"class":715},[701,2246,2247,2249,2251,2254,2256,2259],{"class":703,"line":1548},[701,2248,1107],{"class":707},[701,2250,1044],{"class":739},[701,2252,2253],{"class":715},"._data.pop(",[701,2255,749],{"class":739},[701,2257,2258],{"class":715},")        ",[701,2260,2261],{"class":769},"# O(n) — décalage de tous les éléments\n",[701,2263,2264],{"class":703,"line":1563},[701,2265,730],{"emptyLinePlaceholder":729},[701,2267,2268,2270,2273],{"class":703,"line":1577},[701,2269,736],{"class":707},[701,2271,2272],{"class":711}," est_vide",[701,2274,1101],{"class":715},[701,2276,2277,2279,2282,2284,2286,2289,2292],{"class":703,"line":1594},[701,2278,1107],{"class":707},[701,2280,2281],{"class":739}," len",[701,2283,1488],{"class":715},[701,2285,813],{"class":739},[701,2287,2288],{"class":715},"._data) ",[701,2290,2291],{"class":707},"==",[701,2293,2294],{"class":739}," 0\n",[701,2296,2297],{"class":703,"line":1599},[701,2298,730],{"emptyLinePlaceholder":729},[701,2300,2301,2303,2306],{"class":703,"line":1608},[701,2302,736],{"class":707},[701,2304,2305],{"class":711}," taille",[701,2307,1101],{"class":715},[701,2309,2311,2313,2315,2317,2319],{"class":703,"line":2310},19,[701,2312,1107],{"class":707},[701,2314,2281],{"class":739},[701,2316,1488],{"class":715},[701,2318,813],{"class":739},[701,2320,2321],{"class":715},"._data)\n",[600,2323,2324],{},"Traçons un scénario complet pour vérifier la sémantique FIFO :",[692,2326,2328],{"className":694,"code":2327,"language":696,"meta":697,"style":697},"f = FileTableau()\nf.enfiler(1)\nf.enfiler(2)\nf.enfiler(3)\nprint(f.defiler())   # 1 — le premier entré\nprint(f.defiler())   # 2\nprint(f.taille())    # 1\n",[623,2329,2330,2340,2349,2358,2367,2377,2386],{"__ignoreMap":697},[701,2331,2332,2335,2337],{"class":703,"line":704},[701,2333,2334],{"class":715},"f ",[701,2336,746],{"class":707},[701,2338,2339],{"class":715}," FileTableau()\n",[701,2341,2342,2345,2347],{"class":703,"line":719},[701,2343,2344],{"class":715},"f.enfiler(",[701,2346,932],{"class":739},[701,2348,894],{"class":715},[701,2350,2351,2353,2356],{"class":703,"line":726},[701,2352,2344],{"class":715},[701,2354,2355],{"class":739},"2",[701,2357,894],{"class":715},[701,2359,2360,2362,2365],{"class":703,"line":733},[701,2361,2344],{"class":715},[701,2363,2364],{"class":739},"3",[701,2366,894],{"class":715},[701,2368,2369,2371,2374],{"class":703,"line":755},[701,2370,858],{"class":739},[701,2372,2373],{"class":715},"(f.defiler())   ",[701,2375,2376],{"class":769},"# 1 — le premier entré\n",[701,2378,2379,2381,2383],{"class":703,"line":1035},[701,2380,858],{"class":739},[701,2382,2373],{"class":715},[701,2384,2385],{"class":769},"# 2\n",[701,2387,2388,2390,2393],{"class":703,"line":1055},[701,2389,858],{"class":739},[701,2391,2392],{"class":715},"(f.taille())    ",[701,2394,2395],{"class":769},"# 1\n",[600,2397,2398,829],{},[604,2399,2400],{},"Analyse de complexité",[775,2402,2403,2482],{},[778,2404,2405,2407,2408,2411,2412,2481],{},[623,2406,1775],{}," repose sur ",[623,2409,2410],{},"list.append",", qui s'exécute en ",[701,2413,2416,2450],{"className":2414},[2415],"katex",[701,2417,2420],{"className":2418},[2419],"katex-mathml",[2421,2422,2424],"math",{"xmlns":2423},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[2425,2426,2427,2445],"semantics",{},[2428,2429,2430,2435,2439,2442],"mrow",{},[2431,2432,2434],"mi",{"mathvariant":2433},"script","O",[2436,2437,1488],"mo",{"stretchy":2438},"false",[2440,2441,932],"mn",{},[2436,2443,2444],{"stretchy":2438},")",[2446,2447,2449],"annotation",{"encoding":2448},"application\u002Fx-tex","\\mathcal{O}(1)",[701,2451,2455],{"className":2452,"ariaHidden":2454},[2453],"katex-html","true",[701,2456,2459,2464,2470,2474,2477],{"className":2457},[2458],"base",[701,2460],{"className":2461,"style":2463},[2462],"strut","height:1em;vertical-align:-0.25em;",[701,2465,2434],{"className":2466,"style":2469},[2467,2468],"mord","mathcal","margin-right:0.0278em;",[701,2471,1488],{"className":2472},[2473],"mopen",[701,2475,932],{"className":2476},[2467],[701,2478,2444],{"className":2479},[2480],"mclose"," amorti.",[778,2483,2484,2407,2486,2489,2490,2493,2494,2540,2541,2570],{},[623,2485,1779],{},[623,2487,2488],{},"list.pop(0)",", qui ",[604,2491,2492],{},"décale tous les éléments restants\nvers la gauche"," — coût en ",[701,2495,2497,2518],{"className":2496},[2415],[701,2498,2500],{"className":2499},[2419],[2421,2501,2502],{"xmlns":2423},[2425,2503,2504,2515],{},[2428,2505,2506,2508,2510,2513],{},[2431,2507,2434],{"mathvariant":2433},[2436,2509,1488],{"stretchy":2438},[2431,2511,2512],{},"n",[2436,2514,2444],{"stretchy":2438},[2446,2516,2517],{"encoding":2448},"\\mathcal{O}(n)",[701,2519,2521],{"className":2520,"ariaHidden":2454},[2453],[701,2522,2524,2527,2530,2533,2537],{"className":2523},[2458],[701,2525],{"className":2526,"style":2463},[2462],[701,2528,2434],{"className":2529,"style":2469},[2467,2468],[701,2531,1488],{"className":2532},[2473],[701,2534,2512],{"className":2535},[2467,2536],"mathnormal",[701,2538,2444],{"className":2539},[2480]," où ",[701,2542,2544,2557],{"className":2543},[2415],[701,2545,2547],{"className":2546},[2419],[2421,2548,2549],{"xmlns":2423},[2425,2550,2551,2555],{},[2428,2552,2553],{},[2431,2554,2512],{},[2446,2556,2512],{"encoding":2448},[701,2558,2560],{"className":2559,"ariaHidden":2454},[2453],[701,2561,2563,2567],{"className":2562},[2458],[701,2564],{"className":2565,"style":2566},[2462],"height:0.4306em;",[701,2568,2512],{"className":2569},[2467,2536]," est la taille courante.",[600,2572,2573,2574,2577,2578,2581,2582,2584],{},"Cette implémentation est ",[604,2575,2576],{},"simple à lire"," mais ",[604,2579,2580],{},"non optimale",". Sur une file\nde un million d'éléments, chaque ",[623,2583,1779],{}," réalise un million d'écritures\nmémoire — inacceptable en production.",[595,2586,2588],{"id":2587},"implémentation-2-avec-deux-piles","Implémentation 2 — avec deux piles",[600,2590,2591,2592,2595,2596,2599,2600,2602,2603,2606,2607,2609,2610,2613],{},"Une astuce classique : utiliser ",[604,2593,2594],{},"deux piles"," pour simuler une file. La pile\n",[604,2597,2598],{},"d'entrée"," reçoit les ",[623,2601,1775],{}," ; la pile ",[604,2604,2605],{},"de sortie"," sert aux ",[623,2608,1779],{},".\nQuand la sortie est vide, on transvase tout le contenu de l'entrée dedans, ce\nqui ",[604,2611,2612],{},"inverse l'ordre"," — et le premier entré redevient le premier sorti.",[692,2615,2617],{"className":694,"code":2616,"language":696,"meta":697,"style":697},"class FileDeuxPiles:\n    \"\"\"File FIFO implémentée par deux piles (listes utilisées en LIFO).\"\"\"\n\n    def __init__(self):\n        self._entree = []        # pile : on append\u002Fpop en bout\n        self._sortie = []\n\n    def enfiler(self, x):\n        self._entree.append(x)                       # O(1)\n\n    def defiler(self):\n        if not self._sortie:\n            while self._entree:\n                self._sortie.append(self._entree.pop())\n        if not self._sortie:\n            raise IndexError(\"file vide\")\n        return self._sortie.pop()                    # O(1) amorti\n\n    def est_vide(self):\n        return not self._entree and not self._sortie\n\n    def taille(self):\n        return len(self._entree) + len(self._sortie)\n",[623,2618,2619,2628,2633,2637,2645,2660,2671,2675,2683,2693,2697,2705,2716,2726,2739,2749,2761,2772,2776,2784,2805,2810,2819],{"__ignoreMap":697},[701,2620,2621,2623,2626],{"class":703,"line":704},[701,2622,708],{"class":707},[701,2624,2625],{"class":711}," FileDeuxPiles",[701,2627,716],{"class":715},[701,2629,2630],{"class":703,"line":719},[701,2631,2632],{"class":722},"    \"\"\"File FIFO implémentée par deux piles (listes utilisées en LIFO).\"\"\"\n",[701,2634,2635],{"class":703,"line":726},[701,2636,730],{"emptyLinePlaceholder":729},[701,2638,2639,2641,2643],{"class":703,"line":733},[701,2640,736],{"class":707},[701,2642,740],{"class":739},[701,2644,1101],{"class":715},[701,2646,2647,2649,2652,2654,2657],{"class":703,"line":755},[701,2648,758],{"class":739},[701,2650,2651],{"class":715},"._entree ",[701,2653,746],{"class":707},[701,2655,2656],{"class":715}," []        ",[701,2658,2659],{"class":769},"# pile : on append\u002Fpop en bout\n",[701,2661,2662,2664,2667,2669],{"class":703,"line":1035},[701,2663,758],{"class":739},[701,2665,2666],{"class":715},"._sortie ",[701,2668,746],{"class":707},[701,2670,2181],{"class":715},[701,2672,2673],{"class":703,"line":1055},[701,2674,730],{"emptyLinePlaceholder":729},[701,2676,2677,2679,2681],{"class":703,"line":1060},[701,2678,736],{"class":707},[701,2680,2192],{"class":711},[701,2682,2195],{"class":715},[701,2684,2685,2687,2690],{"class":703,"line":1070},[701,2686,758],{"class":739},[701,2688,2689],{"class":715},"._entree.append(x)                       ",[701,2691,2692],{"class":769},"# O(1)\n",[701,2694,2695],{"class":703,"line":1088},[701,2696,730],{"emptyLinePlaceholder":729},[701,2698,2699,2701,2703],{"class":703,"line":1093},[701,2700,736],{"class":707},[701,2702,2216],{"class":711},[701,2704,1101],{"class":715},[701,2706,2707,2709,2711,2713],{"class":703,"line":1104},[701,2708,1466],{"class":707},[701,2710,2225],{"class":707},[701,2712,1044],{"class":739},[701,2714,2715],{"class":715},"._sortie:\n",[701,2717,2718,2721,2723],{"class":703,"line":1548},[701,2719,2720],{"class":707},"            while",[701,2722,1044],{"class":739},[701,2724,2725],{"class":715},"._entree:\n",[701,2727,2728,2731,2734,2736],{"class":703,"line":1563},[701,2729,2730],{"class":739},"                self",[701,2732,2733],{"class":715},"._sortie.append(",[701,2735,813],{"class":739},[701,2737,2738],{"class":715},"._entree.pop())\n",[701,2740,2741,2743,2745,2747],{"class":703,"line":1577},[701,2742,1466],{"class":707},[701,2744,2225],{"class":707},[701,2746,1044],{"class":739},[701,2748,2715],{"class":715},[701,2750,2751,2753,2755,2757,2759],{"class":703,"line":1594},[701,2752,1482],{"class":707},[701,2754,2237],{"class":739},[701,2756,1488],{"class":715},[701,2758,2242],{"class":722},[701,2760,894],{"class":715},[701,2762,2763,2765,2767,2770],{"class":703,"line":1599},[701,2764,1107],{"class":707},[701,2766,1044],{"class":739},[701,2768,2769],{"class":715},"._sortie.pop()                    ",[701,2771,2205],{"class":769},[701,2773,2774],{"class":703,"line":1608},[701,2775,730],{"emptyLinePlaceholder":729},[701,2777,2778,2780,2782],{"class":703,"line":2310},[701,2779,736],{"class":707},[701,2781,2272],{"class":711},[701,2783,1101],{"class":715},[701,2785,2787,2789,2791,2793,2795,2798,2800,2802],{"class":703,"line":2786},20,[701,2788,1107],{"class":707},[701,2790,2225],{"class":707},[701,2792,1044],{"class":739},[701,2794,2651],{"class":715},[701,2796,2797],{"class":707},"and",[701,2799,2225],{"class":707},[701,2801,1044],{"class":739},[701,2803,2804],{"class":715},"._sortie\n",[701,2806,2808],{"class":703,"line":2807},21,[701,2809,730],{"emptyLinePlaceholder":729},[701,2811,2813,2815,2817],{"class":703,"line":2812},22,[701,2814,736],{"class":707},[701,2816,2305],{"class":711},[701,2818,1101],{"class":715},[701,2820,2822,2824,2826,2828,2830,2833,2835,2837,2839,2841],{"class":703,"line":2821},23,[701,2823,1107],{"class":707},[701,2825,2281],{"class":739},[701,2827,1488],{"class":715},[701,2829,813],{"class":739},[701,2831,2832],{"class":715},"._entree) ",[701,2834,1049],{"class":707},[701,2836,2281],{"class":739},[701,2838,1488],{"class":715},[701,2840,813],{"class":739},[701,2842,2843],{"class":715},"._sortie)\n",[600,2845,2846],{},"Traçons le même scénario qu'avant — l'observation extérieure est identique :",[692,2848,2850],{"className":694,"code":2849,"language":696,"meta":697,"style":697},"f = FileDeuxPiles()\nf.enfiler(1)\nf.enfiler(2)\nf.enfiler(3)\nprint(f.defiler())   # 1\nprint(f.defiler())   # 2\nprint(f.taille())    # 1\n",[623,2851,2852,2861,2869,2877,2885,2893,2901],{"__ignoreMap":697},[701,2853,2854,2856,2858],{"class":703,"line":704},[701,2855,2334],{"class":715},[701,2857,746],{"class":707},[701,2859,2860],{"class":715}," FileDeuxPiles()\n",[701,2862,2863,2865,2867],{"class":703,"line":719},[701,2864,2344],{"class":715},[701,2866,932],{"class":739},[701,2868,894],{"class":715},[701,2870,2871,2873,2875],{"class":703,"line":726},[701,2872,2344],{"class":715},[701,2874,2355],{"class":739},[701,2876,894],{"class":715},[701,2878,2879,2881,2883],{"class":703,"line":733},[701,2880,2344],{"class":715},[701,2882,2364],{"class":739},[701,2884,894],{"class":715},[701,2886,2887,2889,2891],{"class":703,"line":755},[701,2888,858],{"class":739},[701,2890,2373],{"class":715},[701,2892,2395],{"class":769},[701,2894,2895,2897,2899],{"class":703,"line":1035},[701,2896,858],{"class":739},[701,2898,2373],{"class":715},[701,2900,2385],{"class":769},[701,2902,2903,2905,2907],{"class":703,"line":1055},[701,2904,858],{"class":739},[701,2906,2392],{"class":715},[701,2908,2395],{"class":769},[2910,2911],"illustration",{"alt":2912,"kind":2913,"src":2914,"svg":2915},"Deux piles côte à côte : pile entrée à gauche avec [1, 2, 3] du bas vers le haut, pile sortie vide à droite. Le transvasement depuis le sommet de l'entrée produit [3, 2, 1] dans la sortie — le 1 se retrouve au sommet, prêt à sortir.","schema","\u002Fillustrations\u002F2.nsi-tale\u002Fta-structures-donnees\u002Fdeux-piles.svg","\u003Csvg class=\"illustration-svg\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 480 250\" role=\"img\" aria-label=\"File à deux piles : à gauche la pile d'entrée empilant 1, 2, 3 du bas vers le haut (sommet = 3) ; une flèche transvase depuis le sommet de l'entrée vers la pile de sortie, vide à droite ; après transvasement le 1 se retrouve au sommet de la sortie, prêt à sortir\">\n  \u003Ctitle>File à deux piles : transvasement entrée vers sortie\u003C\u002Ftitle>\n  \u003Cstyle>\n    .dp-svg { font-family: Geist, Inter, system-ui, sans-serif; }\n    .dp-title  { fill: var(--diagram-text); font-size: 13px; font-weight: 600; }\n    .dp-cell   { fill: var(--diagram-node-bg); stroke: var(--diagram-node-border); stroke-width: 1.5; }\n    .dp-val    { fill: var(--diagram-text); font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 600; }\n    .dp-base   { stroke: var(--diagram-line); stroke-width: 2; stroke-linecap: round; }\n    .dp-eyebrow{ fill: var(--diagram-line); font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 1px; }\n    .dp-empty  { fill: var(--diagram-line); font-size: 12px; font-style: italic; }\n    .dp-arrow  { stroke: var(--diagram-node-border); stroke-width: 2; fill: none; }\n    .dp-arrowh { fill: var(--diagram-node-border); }\n  \u003C\u002Fstyle>\n\n  \u003Cg class=\"dp-svg\">\n    \u003C!-- pile d'entrée (gauche) : 1 en bas, 3 au sommet -->\n    \u003Ctext x=\"92\" y=\"30\" text-anchor=\"middle\" class=\"dp-title\">_entrée\u003C\u002Ftext>\n    \u003Ctext x=\"146\" y=\"62\" class=\"dp-eyebrow\">← sommet\u003C\u002Ftext>\n    \u003Crect x=\"52\" y=\"58\"  width=\"80\" height=\"34\" rx=\"3\" class=\"dp-cell\"\u002F>\u003Ctext x=\"92\" y=\"81\"  text-anchor=\"middle\" class=\"dp-val\">3\u003C\u002Ftext>\n    \u003Crect x=\"52\" y=\"96\"  width=\"80\" height=\"34\" rx=\"3\" class=\"dp-cell\"\u002F>\u003Ctext x=\"92\" y=\"119\" text-anchor=\"middle\" class=\"dp-val\">2\u003C\u002Ftext>\n    \u003Crect x=\"52\" y=\"134\" width=\"80\" height=\"34\" rx=\"3\" class=\"dp-cell\"\u002F>\u003Ctext x=\"92\" y=\"157\" text-anchor=\"middle\" class=\"dp-val\">1\u003C\u002Ftext>\n    \u003Cline x1=\"46\" y1=\"172\" x2=\"138\" y2=\"172\" class=\"dp-base\"\u002F>\n\n    \u003C!-- flèche de transvasement (sommet entrée → sortie) -->\n    \u003Cpath class=\"dp-arrow\" d=\"M 150 90 C 220 76, 268 76, 332 132\"\u002F>\n    \u003Cpolygon class=\"dp-arrowh\" points=\"332,132 322,124 330,118\"\u002F>\n    \u003Ctext x=\"240\" y=\"64\" text-anchor=\"middle\" class=\"dp-eyebrow\">TRANSVASE\u003C\u002Ftext>\n\n    \u003C!-- pile de sortie (droite) : vide -->\n    \u003Ctext x=\"388\" y=\"30\" text-anchor=\"middle\" class=\"dp-title\">_sortie\u003C\u002Ftext>\n    \u003Crect x=\"348\" y=\"58\"  width=\"80\" height=\"110\" rx=\"3\" class=\"dp-cell\" fill=\"none\" stroke-dasharray=\"5 4\"\u002F>\n    \u003Ctext x=\"388\" y=\"118\" text-anchor=\"middle\" class=\"dp-empty\">vide\u003C\u002Ftext>\n    \u003Cline x1=\"342\" y1=\"172\" x2=\"434\" y2=\"172\" class=\"dp-base\"\u002F>\n\n    \u003C!-- résultat attendu après transvasement -->\n    \u003Ctext x=\"388\" y=\"200\" text-anchor=\"middle\" class=\"dp-eyebrow\">PUIS → [3, 2, 1]\u003C\u002Ftext>\n    \u003Ctext x=\"388\" y=\"218\" text-anchor=\"middle\" class=\"dp-empty\">1 au sommet, sort en 1er\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n",[930,2917,2919,2924],{"correct":932,"slug":2918},"implementer-une-structure-c2",[935,2920,2921],{"v-slot:question":697},[600,2922,2923],{},"Pour défiler avec deux piles, on transvase l'entrée vers la sortie uniquement quand…",[935,2925,2926],{"v-slot:choices":697},[775,2927,2928,2931,2934],{},[778,2929,2930],{},"l'entrée est vide",[778,2932,2933],{},"la sortie est vide",[778,2935,2936],{},"à chaque appel à defiler()",[595,2938,2940],{"id":2939},"pourquoi-est-ce-plus-rapide","Pourquoi est-ce plus rapide ?",[600,2942,2943,2944,2975,2976,3004,3005,1185],{},"À première vue, le transvasement coûte cher : il faut bien ",[701,2945,2947,2961],{"className":2946},[2415],[701,2948,2950],{"className":2949},[2419],[2421,2951,2952],{"xmlns":2423},[2425,2953,2954,2959],{},[2428,2955,2956],{},[2431,2957,2958],{},"k",[2446,2960,2958],{"encoding":2448},[701,2962,2964],{"className":2963,"ariaHidden":2454},[2453],[701,2965,2967,2971],{"className":2966},[2458],[701,2968],{"className":2969,"style":2970},[2462],"height:0.6944em;",[701,2972,2958],{"className":2973,"style":2974},[2467,2536],"margin-right:0.0315em;"," opérations pour\nbasculer ",[701,2977,2979,2992],{"className":2978},[2415],[701,2980,2982],{"className":2981},[2419],[2421,2983,2984],{"xmlns":2423},[2425,2985,2986,2990],{},[2428,2987,2988],{},[2431,2989,2958],{},[2446,2991,2958],{"encoding":2448},[701,2993,2995],{"className":2994,"ariaHidden":2454},[2453],[701,2996,2998,3001],{"className":2997},[2458],[701,2999],{"className":3000,"style":2970},[2462],[701,3002,2958],{"className":3003,"style":2974},[2467,2536]," éléments. Mais regardez ce qui se passe sur ",[604,3006,3007],{},"une longue suite\nd'opérations",[3009,3010,3013,3020,3061],"card",{"icon":3011,"title":3012},"i-lucide-target","Analyse amortie",[600,3014,3015,3016,3019],{},"Chaque élément, sur toute sa durée de vie, subit ",[604,3017,3018],{},"exactement quatre manipulations","\nde pile :",[3021,3022,3023,3037,3046,3053],"ol",{},[778,3024,3025,3026,3029,3030,3033,3034,3036],{},"un ",[623,3027,3028],{},"append"," dans ",[623,3031,3032],{},"_entree"," à son ",[623,3035,1775],{}," ;",[778,3038,3025,3039,3042,3043,3045],{},[623,3040,3041],{},"pop"," de ",[623,3044,3032],{}," lors du transvasement ;",[778,3047,3025,3048,3029,3050,3045],{},[623,3049,3028],{},[623,3051,3052],{},"_sortie",[778,3054,3025,3055,3042,3057,3033,3059,1185],{},[623,3056,3041],{},[623,3058,3052],{},[623,3060,1779],{},[600,3062,3063,3064,3092,3093,3136,3137,3180,3181,3184],{},"Sur une suite de ",[701,3065,3067,3080],{"className":3066},[2415],[701,3068,3070],{"className":3069},[2419],[2421,3071,3072],{"xmlns":2423},[2425,3073,3074,3078],{},[2428,3075,3076],{},[2431,3077,2512],{},[2446,3079,2512],{"encoding":2448},[701,3081,3083],{"className":3082,"ariaHidden":2454},[2453],[701,3084,3086,3089],{"className":3085},[2458],[701,3087],{"className":3088,"style":2566},[2462],[701,3090,2512],{"className":3091},[2467,2536]," opérations, le coût total est en ",[701,3094,3096,3115],{"className":3095},[2415],[701,3097,3099],{"className":3098},[2419],[2421,3100,3101],{"xmlns":2423},[2425,3102,3103,3113],{},[2428,3104,3105,3107,3109,3111],{},[2431,3106,2434],{"mathvariant":2433},[2436,3108,1488],{"stretchy":2438},[2431,3110,2512],{},[2436,3112,2444],{"stretchy":2438},[2446,3114,2517],{"encoding":2448},[701,3116,3118],{"className":3117,"ariaHidden":2454},[2453],[701,3119,3121,3124,3127,3130,3133],{"className":3120},[2458],[701,3122],{"className":3123,"style":2463},[2462],[701,3125,2434],{"className":3126,"style":2469},[2467,2468],[701,3128,1488],{"className":3129},[2473],[701,3131,2512],{"className":3132},[2467,2536],[701,3134,2444],{"className":3135},[2480]," — soit\n",[701,3138,3140,3159],{"className":3139},[2415],[701,3141,3143],{"className":3142},[2419],[2421,3144,3145],{"xmlns":2423},[2425,3146,3147,3157],{},[2428,3148,3149,3151,3153,3155],{},[2431,3150,2434],{"mathvariant":2433},[2436,3152,1488],{"stretchy":2438},[2440,3154,932],{},[2436,3156,2444],{"stretchy":2438},[2446,3158,2449],{"encoding":2448},[701,3160,3162],{"className":3161,"ariaHidden":2454},[2453],[701,3163,3165,3168,3171,3174,3177],{"className":3164},[2458],[701,3166],{"className":3167,"style":2463},[2462],[701,3169,2434],{"className":3170,"style":2469},[2467,2468],[701,3172,1488],{"className":3173},[2473],[701,3175,932],{"className":3176},[2467],[701,3178,2444],{"className":3179},[2480]," ",[604,3182,3183],{},"amorti"," par opération.",[600,3186,3187,3188,3191,3192,3195],{},"C'est la beauté de la ",[604,3189,3190],{},"complexité amortie"," : on ne raisonne pas sur le pire\ncas d'une opération isolée (qui peut être un gros transvasement), mais sur le\n",[604,3193,3194],{},"coût moyen"," observé sur une longue séquence d'opérations.",[595,3197,3199],{"id":3198},"la-promesse-de-labstraction","La promesse de l'abstraction",[600,3201,3202,3203,1967,3205,3207,3208,3211,3212,3215,3216,3219,3220,3223],{},"Les deux classes ",[623,3204,1884],{},[623,3206,1888],{}," exposent ",[604,3209,3210],{},"exactement la même\ninterface",". Un code qui utilise ",[623,3213,3214],{},"f.enfiler(x)"," puis ",[623,3217,3218],{},"f.defiler()"," fonctionne\nsans modification, quelle que soit la classe choisie. C'est la promesse de\nl'",[604,3221,3222],{},"abstraction"," : on peut changer le moteur sans changer la carrosserie.",[692,3225,3227],{"className":694,"code":3226,"language":696,"meta":697,"style":697},"# Ce code fonctionne identiquement avec FileTableau OU FileDeuxPiles\ndef traiter_taches(file_de_taches):\n    while not file_de_taches.est_vide():\n        tache = file_de_taches.defiler()\n        # ... traiter la tâche ...\n",[623,3228,3229,3234,3245,3255,3265],{"__ignoreMap":697},[701,3230,3231],{"class":703,"line":704},[701,3232,3233],{"class":769},"# Ce code fonctionne identiquement avec FileTableau OU FileDeuxPiles\n",[701,3235,3236,3239,3242],{"class":703,"line":719},[701,3237,3238],{"class":707},"def",[701,3240,3241],{"class":711}," traiter_taches",[701,3243,3244],{"class":715},"(file_de_taches):\n",[701,3246,3247,3250,3252],{"class":703,"line":726},[701,3248,3249],{"class":707},"    while",[701,3251,2225],{"class":707},[701,3253,3254],{"class":715}," file_de_taches.est_vide():\n",[701,3256,3257,3260,3262],{"class":703,"line":733},[701,3258,3259],{"class":715},"        tache ",[701,3261,746],{"class":707},[701,3263,3264],{"class":715}," file_de_taches.defiler()\n",[701,3266,3267],{"class":703,"line":755},[701,3268,3269],{"class":769},"        # ... traiter la tâche ...\n",[1213,3271,3272],{},[600,3273,3274,3277,3278,3281,3282,3284],{},[604,3275,3276],{},"Règle de l'abstraction"," : un programme client doit dépendre de l'interface,\njamais de l'implémentation. Si vous écrivez ",[623,3279,3280],{},"f._data[0]"," au lieu de ",[623,3283,3218],{},",\nvous brisez ce contrat — et vous perdez la liberté de changer d'implémentation\nsans casser le programme.",[595,3286,3288],{"id":3287},"récapitulatif-comparatif","Récapitulatif comparatif",[1260,3290,3291,3306],{},[1263,3292,3293],{},[1266,3294,3295,3298,3302],{},[1269,3296,3297],{},"Critère",[1269,3299,3300],{},[623,3301,1884],{},[1269,3303,3304],{},[623,3305,1888],{},[1276,3307,3308,3319,3416,3514,3643],{},[1266,3309,3310,3313,3316],{},[1281,3311,3312],{},"Stockage interne",[1281,3314,3315],{},"une liste",[1281,3317,3318],{},"deux listes (piles)",[1266,3320,3321,3325,3371],{},[1281,3322,3323],{},[623,3324,1775],{},[1281,3326,3327,3370],{},[701,3328,3330,3349],{"className":3329},[2415],[701,3331,3333],{"className":3332},[2419],[2421,3334,3335],{"xmlns":2423},[2425,3336,3337,3347],{},[2428,3338,3339,3341,3343,3345],{},[2431,3340,2434],{"mathvariant":2433},[2436,3342,1488],{"stretchy":2438},[2440,3344,932],{},[2436,3346,2444],{"stretchy":2438},[2446,3348,2449],{"encoding":2448},[701,3350,3352],{"className":3351,"ariaHidden":2454},[2453],[701,3353,3355,3358,3361,3364,3367],{"className":3354},[2458],[701,3356],{"className":3357,"style":2463},[2462],[701,3359,2434],{"className":3360,"style":2469},[2467,2468],[701,3362,1488],{"className":3363},[2473],[701,3365,932],{"className":3366},[2467],[701,3368,2444],{"className":3369},[2480]," amorti",[1281,3372,3373],{},[701,3374,3376,3395],{"className":3375},[2415],[701,3377,3379],{"className":3378},[2419],[2421,3380,3381],{"xmlns":2423},[2425,3382,3383,3393],{},[2428,3384,3385,3387,3389,3391],{},[2431,3386,2434],{"mathvariant":2433},[2436,3388,1488],{"stretchy":2438},[2440,3390,932],{},[2436,3392,2444],{"stretchy":2438},[2446,3394,2449],{"encoding":2448},[701,3396,3398],{"className":3397,"ariaHidden":2454},[2453],[701,3399,3401,3404,3407,3410,3413],{"className":3400},[2458],[701,3402],{"className":3403,"style":2463},[2462],[701,3405,2434],{"className":3406,"style":2469},[2467,2468],[701,3408,1488],{"className":3409},[2473],[701,3411,932],{"className":3412},[2467],[701,3414,2444],{"className":3415},[2480],[1266,3417,3418,3422,3467],{},[1281,3419,3420],{},[623,3421,1779],{},[1281,3423,3424],{},[701,3425,3427,3446],{"className":3426},[2415],[701,3428,3430],{"className":3429},[2419],[2421,3431,3432],{"xmlns":2423},[2425,3433,3434,3444],{},[2428,3435,3436,3438,3440,3442],{},[2431,3437,2434],{"mathvariant":2433},[2436,3439,1488],{"stretchy":2438},[2431,3441,2512],{},[2436,3443,2444],{"stretchy":2438},[2446,3445,2517],{"encoding":2448},[701,3447,3449],{"className":3448,"ariaHidden":2454},[2453],[701,3450,3452,3455,3458,3461,3464],{"className":3451},[2458],[701,3453],{"className":3454,"style":2463},[2462],[701,3456,2434],{"className":3457,"style":2469},[2467,2468],[701,3459,1488],{"className":3460},[2473],[701,3462,2512],{"className":3463},[2467,2536],[701,3465,2444],{"className":3466},[2480],[1281,3468,3469,3180,3512],{},[701,3470,3472,3491],{"className":3471},[2415],[701,3473,3475],{"className":3474},[2419],[2421,3476,3477],{"xmlns":2423},[2425,3478,3479,3489],{},[2428,3480,3481,3483,3485,3487],{},[2431,3482,2434],{"mathvariant":2433},[2436,3484,1488],{"stretchy":2438},[2440,3486,932],{},[2436,3488,2444],{"stretchy":2438},[2446,3490,2449],{"encoding":2448},[701,3492,3494],{"className":3493,"ariaHidden":2454},[2453],[701,3495,3497,3500,3503,3506,3509],{"className":3496},[2458],[701,3498],{"className":3499,"style":2463},[2462],[701,3501,2434],{"className":3502,"style":2469},[2467,2468],[701,3504,1488],{"className":3505},[2473],[701,3507,932],{"className":3508},[2467],[701,3510,2444],{"className":3511},[2480],[604,3513,3183],{},[1266,3515,3516,3522,3567],{},[1281,3517,3518,3519,3521],{},"Pire cas d'un ",[623,3520,1779],{}," isolé",[1281,3523,3524],{},[701,3525,3527,3546],{"className":3526},[2415],[701,3528,3530],{"className":3529},[2419],[2421,3531,3532],{"xmlns":2423},[2425,3533,3534,3544],{},[2428,3535,3536,3538,3540,3542],{},[2431,3537,2434],{"mathvariant":2433},[2436,3539,1488],{"stretchy":2438},[2431,3541,2512],{},[2436,3543,2444],{"stretchy":2438},[2446,3545,2517],{"encoding":2448},[701,3547,3549],{"className":3548,"ariaHidden":2454},[2453],[701,3550,3552,3555,3558,3561,3564],{"className":3551},[2458],[701,3553],{"className":3554,"style":2463},[2462],[701,3556,2434],{"className":3557,"style":2469},[2467,2468],[701,3559,1488],{"className":3560},[2473],[701,3562,2512],{"className":3563},[2467,2536],[701,3565,2444],{"className":3566},[2480],[1281,3568,3569,3613,3614,3642],{},[701,3570,3572,3592],{"className":3571},[2415],[701,3573,3575],{"className":3574},[2419],[2421,3576,3577],{"xmlns":2423},[2425,3578,3579,3589],{},[2428,3580,3581,3583,3585,3587],{},[2431,3582,2434],{"mathvariant":2433},[2436,3584,1488],{"stretchy":2438},[2431,3586,2958],{},[2436,3588,2444],{"stretchy":2438},[2446,3590,3591],{"encoding":2448},"\\mathcal{O}(k)",[701,3593,3595],{"className":3594,"ariaHidden":2454},[2453],[701,3596,3598,3601,3604,3607,3610],{"className":3597},[2458],[701,3599],{"className":3600,"style":2463},[2462],[701,3602,2434],{"className":3603,"style":2469},[2467,2468],[701,3605,1488],{"className":3606},[2473],[701,3608,2958],{"className":3609,"style":2974},[2467,2536],[701,3611,2444],{"className":3612},[2480]," avec ",[701,3615,3617,3630],{"className":3616},[2415],[701,3618,3620],{"className":3619},[2419],[2421,3621,3622],{"xmlns":2423},[2425,3623,3624,3628],{},[2428,3625,3626],{},[2431,3627,2958],{},[2446,3629,2958],{"encoding":2448},[701,3631,3633],{"className":3632,"ariaHidden":2454},[2453],[701,3634,3636,3639],{"className":3635},[2458],[701,3637],{"className":3638,"style":2970},[2462],[701,3640,2958],{"className":3641,"style":2974},[2467,2536]," = taille de l'entrée au moment du transvasement",[1266,3644,3645,3648,3651],{},[1281,3646,3647],{},"Lisibilité du code",[1281,3649,3650],{},"très simple",[1281,3652,3653],{},"demande l'astuce du transvasement",[600,3655,3656,3657,3660,3661,3663,3664,3666,3667,3670],{},"Les deux respectent le contrat ; la deuxième est asymptotiquement meilleure. Le\n",[604,3658,3659],{},"choix d'implémentation"," dépend du contexte : si la file reste petite et que\nla simplicité prime, ",[623,3662,1884],{}," suffit ; si la performance compte,\n",[623,3665,1888],{}," (ou mieux, ",[623,3668,3669],{},"collections.deque"," — voir ci-dessous).",[595,3672,1790],{"id":1789},[600,3674,3675,3676,3678,3679,3722],{},"Le module standard ",[623,3677,3669],{}," fournit une file double — ",[701,3680,3682,3701],{"className":3681},[2415],[701,3683,3685],{"className":3684},[2419],[2421,3686,3687],{"xmlns":2423},[2425,3688,3689,3699],{},[2428,3690,3691,3693,3695,3697],{},[2431,3692,2434],{"mathvariant":2433},[2436,3694,1488],{"stretchy":2438},[2440,3696,932],{},[2436,3698,2444],{"stretchy":2438},[2446,3700,2449],{"encoding":2448},[701,3702,3704],{"className":3703,"ariaHidden":2454},[2453],[701,3705,3707,3710,3713,3716,3719],{"className":3706},[2458],[701,3708],{"className":3709,"style":2463},[2462],[701,3711,2434],{"className":3712,"style":2469},[2467,2468],[701,3714,1488],{"className":3715},[2473],[701,3717,932],{"className":3718},[2467],[701,3720,2444],{"className":3721},[2480],"\nà chaque bout — implémentée en C. C'est ce que vous utiliserez en pratique :",[692,3724,3726],{"className":694,"code":3725,"language":696,"meta":697,"style":697},"from collections import deque\nf = deque()\nf.append(1)         # enfiler\nf.append(2)\nprint(f.popleft())  # defiler → 1\n",[623,3727,3728,3742,3751,3764,3772],{"__ignoreMap":697},[701,3729,3730,3733,3736,3739],{"class":703,"line":704},[701,3731,3732],{"class":707},"from",[701,3734,3735],{"class":715}," collections ",[701,3737,3738],{"class":707},"import",[701,3740,3741],{"class":715}," deque\n",[701,3743,3744,3746,3748],{"class":703,"line":719},[701,3745,2334],{"class":715},[701,3747,746],{"class":707},[701,3749,3750],{"class":715}," deque()\n",[701,3752,3753,3756,3758,3761],{"class":703,"line":726},[701,3754,3755],{"class":715},"f.append(",[701,3757,932],{"class":739},[701,3759,3760],{"class":715},")         ",[701,3762,3763],{"class":769},"# enfiler\n",[701,3765,3766,3768,3770],{"class":703,"line":733},[701,3767,3755],{"class":715},[701,3769,2355],{"class":739},[701,3771,894],{"class":715},[701,3773,3774,3776,3779],{"class":703,"line":755},[701,3775,858],{"class":739},[701,3777,3778],{"class":715},"(f.popleft())  ",[701,3780,3781],{"class":769},"# defiler → 1\n",[600,3783,3784,3785,3788],{},"Mais savoir ",[604,3786,3787],{},"réimplémenter"," une file à partir de structures plus primitives\nest exigible au baccalauréat — c'est précisément ce que vous venez de faire,\ndeux fois.",[674,3790],{"code":589},[1912,3792,1914],{},{"title":697,"searchDepth":719,"depth":719,"links":3794},[3795,3796,3797,3798,3799,3800,3801,3802],{"id":1949,"depth":719,"text":1950},{"id":1992,"depth":719,"text":1993},{"id":2134,"depth":719,"text":2135},{"id":2587,"depth":719,"text":2588},{"id":2939,"depth":719,"text":2940},{"id":3198,"depth":719,"text":3199},{"id":3287,"depth":719,"text":3288},{"id":1789,"depth":719,"text":1790},"Mettre en pratique l'objet et l'interface — la même file FIFO codée de deux manières, puis comparée du point de vue de la complexité.",{},[3806,3808],{"slug":2113,"kind":1930,"question":2118,"choices":3807,"correct":932,"multi":1933,"explanation":697},[2125,2128,2131],{"slug":2918,"kind":1930,"question":2923,"choices":3809,"correct":932,"multi":1933,"explanation":697},[2930,2933,2936],{"title":461,"description":3803},"0ismviDkDRMPMEbHcNC8qSzxglmtQ5FoZjmbTGQKMFM",{"id":3813,"title":465,"bo":3814,"body":3816,"description":4927,"eval":1925,"extension":1926,"labo":1925,"meta":4928,"navigation":729,"path":466,"quizzes":4929,"readingTime":704,"seo":4935,"stem":467,"tp":1925,"__hash__":4936},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict.md",[3815],"TA03",{"type":592,"value":3817,"toc":4918},[3818,3820,3833,3842,3846,3965,3986,4007,4011,4062,4195,4205,4209,4263,4380,4386,4390,4408,4511,4516,4621,4659,4774,4778,4820,4893,4895,4913,4915],[595,3819,1950],{"id":1949},[600,3821,966,3822,3825,3826,2577,3829,3832],{},[604,3823,3824],{},"structure linéaire"," organise ses éléments dans un ordre — chaque élément\na (au plus) un précédent et un suivant. Quatre structures dominent le programme\nde Terminale, qui se distinguent ",[604,3827,3828],{},"non par leur forme",[604,3830,3831],{},"par leurs\nopérations autorisées",". On retient une structure pour ce qu'elle permet, pas\npour ce qu'elle contient.",[600,3834,672,3835,3837,3838,3841],{},[674,3836],{"code":3815}," demande explicitement de ",[604,3839,3840],{},"distinguer les structures\npar le jeu des méthodes qui les caractérisent"," et de savoir choisir la bonne\nen fonction de la situation.",[595,3843,3845],{"id":3844},"vue-densemble","Vue d'ensemble",[1260,3847,3848,3864],{},[1263,3849,3850],{},[1266,3851,3852,3855,3858,3861],{},[1269,3853,3854],{},"Structure",[1269,3856,3857],{},"Accès autorisé",[1269,3859,3860],{},"Mode",[1269,3862,3863],{},"Opérations clés",[1276,3865,3866,3894,3919,3938],{},[1266,3867,3868,3873,3879,3882],{},[1281,3869,3870],{},[604,3871,3872],{},"Liste",[1281,3874,3875,3876],{},"Par index ",[623,3877,3878],{},"[i]",[1281,3880,3881],{},"quelconque",[1281,3883,3884,1720,3887,1720,3889,1720,3891],{},[623,3885,3886],{},"len",[623,3888,3878],{},[623,3890,3028],{},[623,3892,3893],{},"insert(i, x)",[1266,3895,3896,3900,3903,3908],{},[1281,3897,3898],{},[604,3899,1723],{},[1281,3901,3902],{},"Au sommet uniquement",[1281,3904,3905],{},[604,3906,3907],{},"LIFO",[1281,3909,3910,1720,3913,1720,3916],{},[623,3911,3912],{},"empiler",[623,3914,3915],{},"depiler",[623,3917,3918],{},"sommet",[1266,3920,3921,3925,3928,3932],{},[1281,3922,3923],{},[604,3924,1895],{},[1281,3926,3927],{},"Tête et queue séparées",[1281,3929,3930],{},[604,3931,2006],{},[1281,3933,3934,1720,3936],{},[623,3935,1775],{},[623,3937,1779],{},[1266,3939,3940,3945,3948,3951],{},[1281,3941,3942],{},[604,3943,3944],{},"Dictionnaire",[1281,3946,3947],{},"Par clé",[1281,3949,3950],{},"non ordonné conceptuellement",[1281,3952,3953,1720,3956,1720,3959,1720,3962],{},[623,3954,3955],{},"d[k]",[623,3957,3958],{},"d[k] = v",[623,3960,3961],{},"del d[k]",[623,3963,3964],{},"k in d",[617,3966,3967],{},[600,3968,3969,3971,3972,3975,3976,3971,3978,3981,3982,3985],{},[604,3970,3907],{}," = ",[787,3973,3974],{},"Last In, First Out"," — comme une pile d'assiettes. ",[604,3977,2006],{},[787,3979,3980],{},"First\nIn, First Out"," — comme une file d'attente. Ces deux acronymes sont ",[604,3983,3984],{},"exigibles","\nau baccalauréat.",[930,3987,3989,3994],{"correct":932,"slug":3988},"listes-piles-files-dict-c1",[935,3990,3991],{"v-slot:question":697},[600,3992,3993],{},"Une structure dans laquelle le dernier ajouté est le premier retiré est…",[935,3995,3996],{"v-slot:choices":697},[775,3997,3998,4001,4004],{},[778,3999,4000],{},"une file",[778,4002,4003],{},"une pile",[778,4005,4006],{},"un dictionnaire",[595,4008,4010],{"id":4009},"la-pile-lifo","La pile (LIFO)",[600,4012,4013,4014,4017,4018,4061],{},"Une pile fonctionne comme une ",[604,4015,4016],{},"pile d'assiettes"," dans un placard : la dernière\nposée est la première reprise, et l'on n'accède qu'au sommet. Implémentation\ndirecte par liste Python — on opère toujours à la fin de la liste, ce qui est en\n",[701,4019,4021,4040],{"className":4020},[2415],[701,4022,4024],{"className":4023},[2419],[2421,4025,4026],{"xmlns":2423},[2425,4027,4028,4038],{},[2428,4029,4030,4032,4034,4036],{},[2431,4031,2434],{"mathvariant":2433},[2436,4033,1488],{"stretchy":2438},[2440,4035,932],{},[2436,4037,2444],{"stretchy":2438},[2446,4039,2449],{"encoding":2448},[701,4041,4043],{"className":4042,"ariaHidden":2454},[2453],[701,4044,4046,4049,4052,4055,4058],{"className":4045},[2458],[701,4047],{"className":4048,"style":2463},[2462],[701,4050,2434],{"className":4051,"style":2469},[2467,2468],[701,4053,1488],{"className":4054},[2473],[701,4056,932],{"className":4057},[2467],[701,4059,2444],{"className":4060},[2480]," amorti :",[692,4063,4065],{"className":694,"code":4064,"language":696,"meta":697,"style":697},"class Pile:\n    def __init__(self):\n        self._data = []\n    def empiler(self, x):\n        self._data.append(x)\n    def depiler(self):\n        if not self._data:\n            raise IndexError(\"pile vide\")\n        return self._data.pop()\n    def sommet(self):\n        return self._data[-1]\n    def est_vide(self):\n        return not self._data\n",[623,4066,4067,4076,4084,4094,4103,4110,4119,4129,4142,4151,4160,4176,4184],{"__ignoreMap":697},[701,4068,4069,4071,4074],{"class":703,"line":704},[701,4070,708],{"class":707},[701,4072,4073],{"class":711}," Pile",[701,4075,716],{"class":715},[701,4077,4078,4080,4082],{"class":703,"line":719},[701,4079,736],{"class":707},[701,4081,740],{"class":739},[701,4083,1101],{"class":715},[701,4085,4086,4088,4090,4092],{"class":703,"line":726},[701,4087,758],{"class":739},[701,4089,2176],{"class":715},[701,4091,746],{"class":707},[701,4093,2181],{"class":715},[701,4095,4096,4098,4101],{"class":703,"line":733},[701,4097,736],{"class":707},[701,4099,4100],{"class":711}," empiler",[701,4102,2195],{"class":715},[701,4104,4105,4107],{"class":703,"line":755},[701,4106,758],{"class":739},[701,4108,4109],{"class":715},"._data.append(x)\n",[701,4111,4112,4114,4117],{"class":703,"line":1035},[701,4113,736],{"class":707},[701,4115,4116],{"class":711}," depiler",[701,4118,1101],{"class":715},[701,4120,4121,4123,4125,4127],{"class":703,"line":1055},[701,4122,1466],{"class":707},[701,4124,2225],{"class":707},[701,4126,1044],{"class":739},[701,4128,2230],{"class":715},[701,4130,4131,4133,4135,4137,4140],{"class":703,"line":1060},[701,4132,1482],{"class":707},[701,4134,2237],{"class":739},[701,4136,1488],{"class":715},[701,4138,4139],{"class":722},"\"pile vide\"",[701,4141,894],{"class":715},[701,4143,4144,4146,4148],{"class":703,"line":1070},[701,4145,1107],{"class":707},[701,4147,1044],{"class":739},[701,4149,4150],{"class":715},"._data.pop()\n",[701,4152,4153,4155,4158],{"class":703,"line":1088},[701,4154,736],{"class":707},[701,4156,4157],{"class":711}," sommet",[701,4159,1101],{"class":715},[701,4161,4162,4164,4166,4169,4171,4173],{"class":703,"line":1093},[701,4163,1107],{"class":707},[701,4165,1044],{"class":739},[701,4167,4168],{"class":715},"._data[",[701,4170,1083],{"class":707},[701,4172,932],{"class":739},[701,4174,4175],{"class":715},"]\n",[701,4177,4178,4180,4182],{"class":703,"line":1104},[701,4179,736],{"class":707},[701,4181,2272],{"class":711},[701,4183,1101],{"class":715},[701,4185,4186,4188,4190,4192],{"class":703,"line":1548},[701,4187,1107],{"class":707},[701,4189,2225],{"class":707},[701,4191,1044],{"class":739},[701,4193,4194],{"class":715},"._data\n",[600,4196,4197,4200,4201,4204],{},[604,4198,4199],{},"Cas d'usage typiques"," : pile d'appels d'un programme récursif, retour-arrière\n(navigation web, ",[787,4202,4203],{},"undo","), parcours en profondeur d'un graphe.",[595,4206,4208],{"id":4207},"la-file-fifo","La file (FIFO)",[600,4210,4211,4212,4215,4216,4218,4219,4262],{},"Une file fonctionne comme une ",[604,4213,4214],{},"salle d'attente"," chez le médecin : on arrive par\nla fin, on passe par le début, dans l'ordre d'arrivée. On a vu au cours précédent\ndeux implémentations (par liste, par deux piles). L'implémentation idiomatique\nen Python utilise ",[623,4217,3669],{},", qui offre le ",[701,4220,4222,4241],{"className":4221},[2415],[701,4223,4225],{"className":4224},[2419],[2421,4226,4227],{"xmlns":2423},[2425,4228,4229,4239],{},[2428,4230,4231,4233,4235,4237],{},[2431,4232,2434],{"mathvariant":2433},[2436,4234,1488],{"stretchy":2438},[2440,4236,932],{},[2436,4238,2444],{"stretchy":2438},[2446,4240,2449],{"encoding":2448},[701,4242,4244],{"className":4243,"ariaHidden":2454},[2453],[701,4245,4247,4250,4253,4256,4259],{"className":4246},[2458],[701,4248],{"className":4249,"style":2463},[2462],[701,4251,2434],{"className":4252,"style":2469},[2467,2468],[701,4254,1488],{"className":4255},[2473],[701,4257,932],{"className":4258},[2467],[701,4260,2444],{"className":4261},[2480]," aux deux\nextrémités :",[692,4264,4266],{"className":694,"code":4265,"language":696,"meta":697,"style":697},"from collections import deque\n\nclass File:\n    def __init__(self):\n        self._data = deque()\n    def enfiler(self, x):\n        self._data.append(x)\n    def defiler(self):\n        if not self._data:\n            raise IndexError(\"file vide\")\n        return self._data.popleft()\n    def est_vide(self):\n        return not self._data\n",[623,4267,4268,4278,4282,4291,4299,4309,4317,4323,4331,4341,4353,4362,4370],{"__ignoreMap":697},[701,4269,4270,4272,4274,4276],{"class":703,"line":704},[701,4271,3732],{"class":707},[701,4273,3735],{"class":715},[701,4275,3738],{"class":707},[701,4277,3741],{"class":715},[701,4279,4280],{"class":703,"line":719},[701,4281,730],{"emptyLinePlaceholder":729},[701,4283,4284,4286,4289],{"class":703,"line":726},[701,4285,708],{"class":707},[701,4287,4288],{"class":711}," File",[701,4290,716],{"class":715},[701,4292,4293,4295,4297],{"class":703,"line":733},[701,4294,736],{"class":707},[701,4296,740],{"class":739},[701,4298,1101],{"class":715},[701,4300,4301,4303,4305,4307],{"class":703,"line":755},[701,4302,758],{"class":739},[701,4304,2176],{"class":715},[701,4306,746],{"class":707},[701,4308,3750],{"class":715},[701,4310,4311,4313,4315],{"class":703,"line":1035},[701,4312,736],{"class":707},[701,4314,2192],{"class":711},[701,4316,2195],{"class":715},[701,4318,4319,4321],{"class":703,"line":1055},[701,4320,758],{"class":739},[701,4322,4109],{"class":715},[701,4324,4325,4327,4329],{"class":703,"line":1060},[701,4326,736],{"class":707},[701,4328,2216],{"class":711},[701,4330,1101],{"class":715},[701,4332,4333,4335,4337,4339],{"class":703,"line":1070},[701,4334,1466],{"class":707},[701,4336,2225],{"class":707},[701,4338,1044],{"class":739},[701,4340,2230],{"class":715},[701,4342,4343,4345,4347,4349,4351],{"class":703,"line":1088},[701,4344,1482],{"class":707},[701,4346,2237],{"class":739},[701,4348,1488],{"class":715},[701,4350,2242],{"class":722},[701,4352,894],{"class":715},[701,4354,4355,4357,4359],{"class":703,"line":1093},[701,4356,1107],{"class":707},[701,4358,1044],{"class":739},[701,4360,4361],{"class":715},"._data.popleft()\n",[701,4363,4364,4366,4368],{"class":703,"line":1104},[701,4365,736],{"class":707},[701,4367,2272],{"class":711},[701,4369,1101],{"class":715},[701,4371,4372,4374,4376,4378],{"class":703,"line":1548},[701,4373,1107],{"class":707},[701,4375,2225],{"class":707},[701,4377,1044],{"class":739},[701,4379,4194],{"class":715},[600,4381,4382,4385],{},[604,4383,4384],{},"Cas d'usage"," : file d'impression, parcours en largeur d'un graphe, gestion\nde tâches en attente.",[595,4387,4389],{"id":4388},"le-dictionnaire","Le dictionnaire",[600,4391,4392,4393,4396,4397,4400,4401,4404,4405,1185],{},"Un dictionnaire associe des ",[604,4394,4395],{},"clés"," à des ",[604,4398,4399],{},"valeurs"," — comme un ",[604,4402,4403],{},"annuaire","\ntéléphonique associe un nom à un numéro. On y accède par clé, pas par position.\nLes clés sont uniques. En Python, c'est le type ",[623,4406,4407],{},"dict",[692,4409,4411],{"className":694,"code":4410,"language":696,"meta":697,"style":697},"notes = {\"Alice\": 14, \"Bob\": 11, \"Camille\": 16}\nnotes[\"Alice\"]          # 14\nnotes[\"Dimitri\"] = 9    # ajout\n\"Bob\" in notes          # True\ndel notes[\"Bob\"]\n",[623,4412,4413,4455,4468,4486,4499],{"__ignoreMap":697},[701,4414,4415,4418,4420,4423,4426,4429,4432,4434,4437,4439,4442,4444,4447,4449,4452],{"class":703,"line":704},[701,4416,4417],{"class":715},"notes ",[701,4419,746],{"class":707},[701,4421,4422],{"class":715}," {",[701,4424,4425],{"class":722},"\"Alice\"",[701,4427,4428],{"class":715},": ",[701,4430,4431],{"class":739},"14",[701,4433,1720],{"class":715},[701,4435,4436],{"class":722},"\"Bob\"",[701,4438,4428],{"class":715},[701,4440,4441],{"class":739},"11",[701,4443,1720],{"class":715},[701,4445,4446],{"class":722},"\"Camille\"",[701,4448,4428],{"class":715},[701,4450,4451],{"class":739},"16",[701,4453,4454],{"class":715},"}\n",[701,4456,4457,4460,4462,4465],{"class":703,"line":719},[701,4458,4459],{"class":715},"notes[",[701,4461,4425],{"class":722},[701,4463,4464],{"class":715},"]          ",[701,4466,4467],{"class":769},"# 14\n",[701,4469,4470,4472,4475,4478,4480,4483],{"class":703,"line":726},[701,4471,4459],{"class":715},[701,4473,4474],{"class":722},"\"Dimitri\"",[701,4476,4477],{"class":715},"] ",[701,4479,746],{"class":707},[701,4481,4482],{"class":739}," 9",[701,4484,4485],{"class":769},"    # ajout\n",[701,4487,4488,4490,4493,4496],{"class":703,"line":733},[701,4489,4436],{"class":722},[701,4491,4492],{"class":707}," in",[701,4494,4495],{"class":715}," notes          ",[701,4497,4498],{"class":769},"# True\n",[701,4500,4501,4504,4507,4509],{"class":703,"line":755},[701,4502,4503],{"class":707},"del",[701,4505,4506],{"class":715}," notes[",[701,4508,4436],{"class":722},[701,4510,4175],{"class":715},[600,4512,4513,829],{},[604,4514,4515],{},"Recherche d'une valeur",[775,4517,4518,4568],{},[778,4519,4520,4521,4523,4524,4567],{},"Dans une liste, chercher si ",[623,4522,2047],{}," est présent coûte ",[701,4525,4527,4546],{"className":4526},[2415],[701,4528,4530],{"className":4529},[2419],[2421,4531,4532],{"xmlns":2423},[2425,4533,4534,4544],{},[2428,4535,4536,4538,4540,4542],{},[2431,4537,2434],{"mathvariant":2433},[2436,4539,1488],{"stretchy":2438},[2431,4541,2512],{},[2436,4543,2444],{"stretchy":2438},[2446,4545,2517],{"encoding":2448},[701,4547,4549],{"className":4548,"ariaHidden":2454},[2453],[701,4550,4552,4555,4558,4561,4564],{"className":4551},[2458],[701,4553],{"className":4554,"style":2463},[2462],[701,4556,2434],{"className":4557,"style":2469},[2467,2468],[701,4559,1488],{"className":4560},[2473],[701,4562,2512],{"className":4563},[2467,2536],[701,4565,2444],{"className":4566},[2480]," en moyenne.",[778,4569,4570,4571,4573,4574,3180,4617,4620],{},"Dans un dictionnaire, ",[623,4572,3964],{}," coûte ",[701,4575,4577,4596],{"className":4576},[2415],[701,4578,4580],{"className":4579},[2419],[2421,4581,4582],{"xmlns":2423},[2425,4583,4584,4594],{},[2428,4585,4586,4588,4590,4592],{},[2431,4587,2434],{"mathvariant":2433},[2436,4589,1488],{"stretchy":2438},[2440,4591,932],{},[2436,4593,2444],{"stretchy":2438},[2446,4595,2449],{"encoding":2448},[701,4597,4599],{"className":4598,"ariaHidden":2454},[2453],[701,4600,4602,4605,4608,4611,4614],{"className":4601},[2458],[701,4603],{"className":4604,"style":2463},[2462],[701,4606,2434],{"className":4607,"style":2469},[2467,2468],[701,4609,1488],{"className":4610},[2473],[701,4612,932],{"className":4613},[2467],[701,4615,2444],{"className":4616},[2480],[604,4618,4619],{},"en moyenne"," grâce à\nune table de hachage interne — c'est l'un des grands avantages structurels.",[1213,4622,4623],{},[600,4624,4625,4626,4629,4630,4658],{},"Si vos données ont une ",[604,4627,4628],{},"clé naturelle"," (identifiant, nom, code), préférez un\ndictionnaire à une liste. Vous gagnez un facteur ",[701,4631,4633,4646],{"className":4632},[2415],[701,4634,4636],{"className":4635},[2419],[2421,4637,4638],{"xmlns":2423},[2425,4639,4640,4644],{},[2428,4641,4642],{},[2431,4643,2512],{},[2446,4645,2512],{"encoding":2448},[701,4647,4649],{"className":4648,"ariaHidden":2454},[2453],[701,4650,4652,4655],{"className":4651},[2458],[701,4653],{"className":4654,"style":2566},[2462],[701,4656,2512],{"className":4657},[2467,2536]," sur les recherches.",[930,4660,4662,4761],{"correct":2355,"slug":4661},"listes-piles-files-dict-c2",[935,4663,4664],{"v-slot:question":697},[600,4665,4666,4667,4760],{},"Quelle structure offre la recherche par clé en ",[701,4668,4670,4713],{"className":4669},[2415],[701,4671,4673],{"className":4672},[2419],[2421,4674,4675],{"xmlns":2423},[2425,4676,4677,4710],{},[2428,4678,4679,4683,4686,4689,4692,4695,4697,4699,4702,4704,4706,4708],{},[4680,4681],"mspace",{"linebreak":4682},"newline",[2431,4684,4685],{},"m",[2431,4687,4688],{},"a",[2431,4690,4691],{},"t",[2431,4693,4694],{},"h",[2431,4696,1178],{},[2431,4698,4688],{},[2431,4700,4701],{},"l",[2431,4703,2434],{},[2436,4705,1488],{"stretchy":2438},[2440,4707,932],{},[2436,4709,2444],{"stretchy":2438},[2446,4711,4712],{"encoding":2448},"\\\\mathcal{O}(1)",[701,4714,4716,4719],{"className":4715,"ariaHidden":2454},[2453],[701,4717],{"className":4718},[4680,4682],[701,4720,4722,4725,4729,4732,4735,4738,4741,4745,4751,4754,4757],{"className":4721},[2458],[701,4723],{"className":4724,"style":2463},[2462],[701,4726,4728],{"className":4727},[2467,2536],"ma",[701,4730,4691],{"className":4731},[2467,2536],[701,4733,4694],{"className":4734},[2467,2536],[701,4736,1178],{"className":4737},[2467,2536],[701,4739,4688],{"className":4740},[2467,2536],[701,4742,4701],{"className":4743,"style":4744},[2467,2536],"margin-right:0.0197em;",[701,4746,4748],{"className":4747},[2467],[701,4749,2434],{"className":4750,"style":2469},[2467,2536],[701,4752,1488],{"className":4753},[2473],[701,4755,932],{"className":4756},[2467],[701,4758,2444],{"className":4759},[2480]," moyen ?",[935,4762,4763],{"v-slot:choices":697},[775,4764,4765,4768,4771],{},[778,4766,4767],{},"liste",[778,4769,4770],{},"pile",[778,4772,4773],{},"dictionnaire",[595,4775,4777],{"id":4776},"choisir-la-bonne-structure","Choisir la bonne structure",[1260,4779,4780,4790],{},[1263,4781,4782],{},[1266,4783,4784,4787],{},[1269,4785,4786],{},"Question à se poser",[1269,4788,4789],{},"Structure adaptée",[1276,4791,4792,4799,4806,4813],{},[1266,4793,4794,4797],{},[1281,4795,4796],{},"Ai-je besoin d'accéder par position ?",[1281,4798,4767],{},[1266,4800,4801,4804],{},[1281,4802,4803],{},"Le dernier entré sort en premier ?",[1281,4805,4770],{},[1266,4807,4808,4811],{},[1281,4809,4810],{},"Le premier entré sort en premier ?",[1281,4812,1998],{},[1266,4814,4815,4818],{},[1281,4816,4817],{},"J'identifie mes données par une étiquette ?",[1281,4819,4773],{},[1663,4821,4822],{},[600,4823,966,4824,4826,4827,4829,4830,1967,4833,4836,4837,4840,4841,4844,4845,4888,4889,4892],{},[604,4825,4767],{}," n'est pas une ",[604,4828,4770],{}," : tant que vous utilisez ",[623,4831,4832],{},".append",[623,4834,4835],{},".pop","\nen bout, oui ; dès que vous faites ",[623,4838,4839],{},".pop(0)"," ou ",[623,4842,4843],{},".insert(0, x)",", vous trahissez\nla sémantique et payez en ",[701,4846,4848,4867],{"className":4847},[2415],[701,4849,4851],{"className":4850},[2419],[2421,4852,4853],{"xmlns":2423},[2425,4854,4855,4865],{},[2428,4856,4857,4859,4861,4863],{},[2431,4858,2434],{"mathvariant":2433},[2436,4860,1488],{"stretchy":2438},[2431,4862,2512],{},[2436,4864,2444],{"stretchy":2438},[2446,4866,2517],{"encoding":2448},[701,4868,4870],{"className":4869,"ariaHidden":2454},[2453],[701,4871,4873,4876,4879,4882,4885],{"className":4872},[2458],[701,4874],{"className":4875,"style":2463},[2462],[701,4877,2434],{"className":4878,"style":2469},[2467,2468],[701,4880,1488],{"className":4881},[2473],[701,4883,2512],{"className":4884},[2467,2536],[701,4886,2444],{"className":4887},[2480],". Le ",[604,4890,4891],{},"choix sémantique"," précède le\nchoix d'implémentation.",[595,4894,1790],{"id":1789},[600,4896,4897,4898,4901,4902,4905,4906,4909,4910,4912],{},"Le module ",[623,4899,4900],{},"collections"," contient deux variantes utiles : ",[623,4903,4904],{},"deque"," (file double)\net ",[623,4907,4908],{},"OrderedDict"," (dictionnaire qui mémorise l'ordre d'insertion — en pratique,\nles ",[623,4911,4407],{}," Python 3.7+ le font par défaut).",[674,4914],{"code":3815},[1912,4916,4917],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":697,"searchDepth":719,"depth":719,"links":4919},[4920,4921,4922,4923,4924,4925,4926],{"id":1949,"depth":719,"text":1950},{"id":3844,"depth":719,"text":3845},{"id":4009,"depth":719,"text":4010},{"id":4207,"depth":719,"text":4208},{"id":4388,"depth":719,"text":4389},{"id":4776,"depth":719,"text":4777},{"id":1789,"depth":719,"text":1790},"Les structures linéaires canoniques — LIFO, FIFO, accès par index, accès par clé — caractérisées par leurs méthodes.",{},[4930,4932],{"slug":3988,"kind":1930,"question":3993,"choices":4931,"correct":932,"multi":1933,"explanation":697},[4000,4003,4006],{"slug":4661,"kind":1930,"question":4933,"choices":4934,"correct":2355,"multi":1933,"explanation":697},"Quelle structure offre la recherche par clé en mathcalO(1)\\\\mathcal{O}(1)mathcalO(1) moyen ?",[4767,4770,4773],{"title":465,"description":4927},"nnqyxE2f_ilzH030ko0jrO6Hn5aaezb4sszEbC03X1g",{"id":4938,"title":469,"bo":4939,"body":4941,"description":10158,"eval":1925,"extension":1926,"labo":1925,"meta":10159,"navigation":729,"path":470,"quizzes":10160,"readingTime":704,"seo":10166,"stem":471,"tp":1925,"__hash__":10167},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires.md",[4940],"TA01",{"type":592,"value":4942,"toc":10144},[4943,4945,4960,4967,4977,4981,5141,5260,5264,5270,5390,5393,5453,5471,5475,5479,5482,5962,6015,6018,6473,6680,6730,6734,6852,7301,7305,7501,7875,8343,8979,9376,9380,10005,10078,10080,10139,10141],[595,4944,1950],{"id":1949},[600,4946,4947,4948,4951,4952,4955,4956,4959],{},"Quand les données ont une ",[604,4949,4950],{},"hiérarchie naturelle"," — un système de fichiers, un\narbre généalogique, le DOM d'une page web, la décomposition syntaxique d'une\nexpression — les structures linéaires ne suffisent plus. On utilise alors un\n",[604,4953,4954],{},"arbre"," : un ensemble de nœuds organisés autour d'une ",[604,4957,4958],{},"racine",", où chaque\nnœud porte un nombre fini d'enfants.",[600,4961,4962,4963,4966],{},"L'image la plus familière est l'",[604,4964,4965],{},"arbre généalogique"," : une personne en haut,\nses descendants qui se ramifient à mesure qu'on descend. La racine informatique\nest en haut par convention — les arbres en informatique poussent vers le bas,\ncontrairement à leurs cousins botaniques.",[600,4968,4969,4970,4973,4974,4976],{},"Ce cours traite spécifiquement des ",[604,4971,4972],{},"arbres binaires"," (chaque nœud a au plus\ndeux enfants), conformément à ",[674,4975],{"code":4940},". Les algorithmes associés\n(parcours préfixe, infixe, suffixe, BFS, DFS) sont abordés au chapitre TE.",[595,4978,4980],{"id":4979},"vocabulaire","Vocabulaire",[1260,4982,4983,4993],{},[1263,4984,4985],{},[1266,4986,4987,4990],{},[1269,4988,4989],{},"Terme",[1269,4991,4992],{},"Définition",[1276,4994,4995,5005,5015,5025,5035,5045,5055,5093,5131],{},[1266,4996,4997,5002],{},[1281,4998,4999],{},[604,5000,5001],{},"Nœud",[1281,5003,5004],{},"Élément de l'arbre, portant une valeur.",[1266,5006,5007,5012],{},[1281,5008,5009],{},[604,5010,5011],{},"Racine",[1281,5013,5014],{},"Nœud sans parent — point d'entrée unique de l'arbre.",[1266,5016,5017,5022],{},[1281,5018,5019],{},[604,5020,5021],{},"Feuille",[1281,5023,5024],{},"Nœud sans enfant.",[1266,5026,5027,5032],{},[1281,5028,5029],{},[604,5030,5031],{},"Sous-arbre gauche",[1281,5033,5034],{},"Arbre enraciné au fils gauche d'un nœud.",[1266,5036,5037,5042],{},[1281,5038,5039],{},[604,5040,5041],{},"Sous-arbre droit",[1281,5043,5044],{},"Arbre enraciné au fils droit.",[1266,5046,5047,5052],{},[1281,5048,5049],{},[604,5050,5051],{},"Arête",[1281,5053,5054],{},"Lien entre un parent et un de ses enfants.",[1266,5056,5057,5090],{},[1281,5058,5059,3180,5062],{},[604,5060,5061],{},"Taille",[701,5063,5065,5078],{"className":5064},[2415],[701,5066,5068],{"className":5067},[2419],[2421,5069,5070],{"xmlns":2423},[2425,5071,5072,5076],{},[2428,5073,5074],{},[2431,5075,2512],{},[2446,5077,2512],{"encoding":2448},[701,5079,5081],{"className":5080,"ariaHidden":2454},[2453],[701,5082,5084,5087],{"className":5083},[2458],[701,5085],{"className":5086,"style":2566},[2462],[701,5088,2512],{"className":5089},[2467,2536],[1281,5091,5092],{},"Nombre total de nœuds de l'arbre.",[1266,5094,5095,5128],{},[1281,5096,5097,3180,5100],{},[604,5098,5099],{},"Hauteur",[701,5101,5103,5116],{"className":5102},[2415],[701,5104,5106],{"className":5105},[2419],[2421,5107,5108],{"xmlns":2423},[2425,5109,5110,5114],{},[2428,5111,5112],{},[2431,5113,4694],{},[2446,5115,4694],{"encoding":2448},[701,5117,5119],{"className":5118,"ariaHidden":2454},[2453],[701,5120,5122,5125],{"className":5121},[2458],[701,5123],{"className":5124,"style":2970},[2462],[701,5126,4694],{"className":5127},[2467,2536],[1281,5129,5130],{},"Longueur (en arêtes) du plus long chemin de la racine à une feuille.",[1266,5132,5133,5138],{},[1281,5134,5135],{},[604,5136,5137],{},"Profondeur d'un nœud",[1281,5139,5140],{},"Longueur du chemin de la racine à ce nœud.",[1663,5142,5143],{},[600,5144,5145,5146,5149,5150,5153,5154,5208,5209,1185],{},"Attention aux ",[604,5147,5148],{},"conventions de hauteur",". Certains auteurs comptent en nombre\nde niveaux (racine = niveau 1) ; d'autres en arêtes (racine = hauteur 0). Nous\nadoptons ici la convention ",[604,5151,5152],{},"en arêtes"," : un arbre réduit à sa racine a une\nhauteur ",[701,5155,5157,5175],{"className":5156},[2415],[701,5158,5160],{"className":5159},[2419],[2421,5161,5162],{"xmlns":2423},[2425,5163,5164,5172],{},[2428,5165,5166,5168,5170],{},[2431,5167,4694],{},[2436,5169,746],{},[2440,5171,749],{},[2446,5173,5174],{"encoding":2448},"h = 0",[701,5176,5178,5198],{"className":5177,"ariaHidden":2454},[2453],[701,5179,5181,5184,5187,5191,5195],{"className":5180},[2458],[701,5182],{"className":5183,"style":2970},[2462],[701,5185,4694],{"className":5186},[2467,2536],[701,5188],{"className":5189,"style":5190},[4680],"margin-right:0.2778em;",[701,5192,746],{"className":5193},[5194],"mrel",[701,5196],{"className":5197,"style":5190},[4680],[701,5199,5201,5205],{"className":5200},[2458],[701,5202],{"className":5203,"style":5204},[2462],"height:0.6444em;",[701,5206,749],{"className":5207},[2467],", une taille ",[701,5210,5212,5230],{"className":5211},[2415],[701,5213,5215],{"className":5214},[2419],[2421,5216,5217],{"xmlns":2423},[2425,5218,5219,5227],{},[2428,5220,5221,5223,5225],{},[2431,5222,2512],{},[2436,5224,746],{},[2440,5226,932],{},[2446,5228,5229],{"encoding":2448},"n = 1",[701,5231,5233,5251],{"className":5232,"ariaHidden":2454},[2453],[701,5234,5236,5239,5242,5245,5248],{"className":5235},[2458],[701,5237],{"className":5238,"style":2566},[2462],[701,5240,2512],{"className":5241},[2467,2536],[701,5243],{"className":5244,"style":5190},[4680],[701,5246,746],{"className":5247},[5194],[701,5249],{"className":5250,"style":5190},[4680],[701,5252,5254,5257],{"className":5253},[2458],[701,5255],{"className":5256,"style":5204},[2462],[701,5258,932],{"className":5259},[2467],[595,5261,5263],{"id":5262},"implémentation-python","Implémentation Python",[600,5265,5266,5267,794],{},"On reprend l'outil objet du cours précédent. Un nœud est un objet portant une\nvaleur, un fils gauche et un fils droit (qui sont eux-mêmes des nœuds ou ",[623,5268,5269],{},"None",[692,5271,5273],{"className":694,"code":5272,"language":696,"meta":697,"style":697},"class Noeud:\n    \"\"\"Nœud d'un arbre binaire.\"\"\"\n\n    def __init__(self, valeur, gauche=None, droite=None):\n        self.valeur = valeur\n        self.gauche = gauche\n        self.droite = droite\n\n    def est_feuille(self):\n        return self.gauche is None and self.droite is None\n",[623,5274,5275,5284,5289,5293,5315,5327,5339,5351,5355,5364],{"__ignoreMap":697},[701,5276,5277,5279,5282],{"class":703,"line":704},[701,5278,708],{"class":707},[701,5280,5281],{"class":711}," Noeud",[701,5283,716],{"class":715},[701,5285,5286],{"class":703,"line":719},[701,5287,5288],{"class":722},"    \"\"\"Nœud d'un arbre binaire.\"\"\"\n",[701,5290,5291],{"class":703,"line":726},[701,5292,730],{"emptyLinePlaceholder":729},[701,5294,5295,5297,5299,5302,5304,5306,5309,5311,5313],{"class":703,"line":733},[701,5296,736],{"class":707},[701,5298,740],{"class":739},[701,5300,5301],{"class":715},"(self, valeur, gauche",[701,5303,746],{"class":707},[701,5305,5269],{"class":739},[701,5307,5308],{"class":715},", droite",[701,5310,746],{"class":707},[701,5312,5269],{"class":739},[701,5314,752],{"class":715},[701,5316,5317,5319,5322,5324],{"class":703,"line":755},[701,5318,758],{"class":739},[701,5320,5321],{"class":715},".valeur ",[701,5323,746],{"class":707},[701,5325,5326],{"class":715}," valeur\n",[701,5328,5329,5331,5334,5336],{"class":703,"line":1035},[701,5330,758],{"class":739},[701,5332,5333],{"class":715},".gauche ",[701,5335,746],{"class":707},[701,5337,5338],{"class":715}," gauche\n",[701,5340,5341,5343,5346,5348],{"class":703,"line":1055},[701,5342,758],{"class":739},[701,5344,5345],{"class":715},".droite ",[701,5347,746],{"class":707},[701,5349,5350],{"class":715}," droite\n",[701,5352,5353],{"class":703,"line":1060},[701,5354,730],{"emptyLinePlaceholder":729},[701,5356,5357,5359,5362],{"class":703,"line":1070},[701,5358,736],{"class":707},[701,5360,5361],{"class":711}," est_feuille",[701,5363,1101],{"class":715},[701,5365,5366,5368,5370,5372,5375,5378,5381,5383,5385,5387],{"class":703,"line":1088},[701,5367,1107],{"class":707},[701,5369,1044],{"class":739},[701,5371,5333],{"class":715},[701,5373,5374],{"class":707},"is",[701,5376,5377],{"class":739}," None",[701,5379,5380],{"class":707}," and",[701,5382,1044],{"class":739},[701,5384,5345],{"class":715},[701,5386,5374],{"class":707},[701,5388,5389],{"class":739}," None\n",[600,5391,5392],{},"Création d'un petit arbre :",[692,5394,5396],{"className":694,"code":5395,"language":696,"meta":697,"style":697},"#       1\n#      \u002F \\\n#     2   3\n#    \u002F\n#   4\narbre = Noeud(1, Noeud(2, Noeud(4)), Noeud(3))\n",[623,5397,5398,5403,5408,5413,5418,5423],{"__ignoreMap":697},[701,5399,5400],{"class":703,"line":704},[701,5401,5402],{"class":769},"#       1\n",[701,5404,5405],{"class":703,"line":719},[701,5406,5407],{"class":769},"#      \u002F \\\n",[701,5409,5410],{"class":703,"line":726},[701,5411,5412],{"class":769},"#     2   3\n",[701,5414,5415],{"class":703,"line":733},[701,5416,5417],{"class":769},"#    \u002F\n",[701,5419,5420],{"class":703,"line":755},[701,5421,5422],{"class":769},"#   4\n",[701,5424,5425,5428,5430,5433,5435,5438,5440,5442,5445,5448,5450],{"class":703,"line":1035},[701,5426,5427],{"class":715},"arbre ",[701,5429,746],{"class":707},[701,5431,5432],{"class":715}," Noeud(",[701,5434,932],{"class":739},[701,5436,5437],{"class":715},", Noeud(",[701,5439,2355],{"class":739},[701,5441,5437],{"class":715},[701,5443,5444],{"class":739},"4",[701,5446,5447],{"class":715},")), Noeud(",[701,5449,2364],{"class":739},[701,5451,5452],{"class":715},"))\n",[930,5454,5456,5461],{"correct":2355,"slug":5455},"arbres-binaires-c1",[935,5457,5458],{"v-slot:question":697},[600,5459,5460],{},"Dans l'arbre ci-dessus, combien de feuilles ?",[935,5462,5463],{"v-slot:choices":697},[775,5464,5465,5467,5469],{},[778,5466,932],{},[778,5468,2355],{},[778,5470,2364],{},[595,5472,5474],{"id":5473},"mesurer-un-arbre-binaire","Mesurer un arbre binaire",[5476,5477,5061],"h3",{"id":5478},"taille",[600,5480,5481],{},"Le nombre total de nœuds, défini récursivement :",[701,5483,5486],{"className":5484},[5485],"katex-display",[701,5487,5489,5637],{"className":5488},[2415],[701,5490,5492],{"className":5491},[2419],[2421,5493,5495],{"xmlns":2423,"display":5494},"block",[2425,5496,5497,5634],{},[2428,5498,5499,5516,5518,5521,5523,5525],{},[2428,5500,5501,5504,5506,5509,5511,5513],{},[2431,5502,4691],{"mathvariant":5503},"normal",[2431,5505,4688],{"mathvariant":5503},[2431,5507,5508],{"mathvariant":5503},"i",[2431,5510,4701],{"mathvariant":5503},[2431,5512,4701],{"mathvariant":5503},[2431,5514,5515],{"mathvariant":5503},"e",[2436,5517,1488],{"stretchy":2438},[2431,5519,5520],{},"A",[2436,5522,2444],{"stretchy":2438},[2436,5524,746],{},[2428,5526,5527,5530],{},[2436,5528,5529],{"fence":2454},"{",[5531,5532,5536,5562],"mtable",{"rowspacing":5533,"columnalign":5534,"columnspacing":5535},"0.36em","left left","1em",[5537,5538,5539,5547],"mtr",{},[5540,5541,5542],"mtd",{},[5543,5544,5545],"mstyle",{"scriptlevel":749,"displaystyle":2438},[2440,5546,749],{},[5540,5548,5549],{},[5543,5550,5551],{"scriptlevel":749,"displaystyle":2438},[2428,5552,5553,5557,5559],{},[5554,5555,5556],"mtext",{},"si ",[2431,5558,5520],{},[5554,5560,5561],{}," est vide",[5537,5563,5564,5627],{},[5540,5565,5566],{},[5543,5567,5568],{"scriptlevel":749,"displaystyle":2438},[2428,5569,5570,5572,5574,5588,5590,5598,5600,5602,5616,5618,5625],{},[2440,5571,932],{},[2436,5573,1049],{},[2428,5575,5576,5578,5580,5582,5584,5586],{},[2431,5577,4691],{"mathvariant":5503},[2431,5579,4688],{"mathvariant":5503},[2431,5581,5508],{"mathvariant":5503},[2431,5583,4701],{"mathvariant":5503},[2431,5585,4701],{"mathvariant":5503},[2431,5587,5515],{"mathvariant":5503},[2436,5589,1488],{"stretchy":2438},[5591,5592,5593,5595],"msub",{},[2431,5594,5520],{},[2431,5596,5597],{},"g",[2436,5599,2444],{"stretchy":2438},[2436,5601,1049],{},[2428,5603,5604,5606,5608,5610,5612,5614],{},[2431,5605,4691],{"mathvariant":5503},[2431,5607,4688],{"mathvariant":5503},[2431,5609,5508],{"mathvariant":5503},[2431,5611,4701],{"mathvariant":5503},[2431,5613,4701],{"mathvariant":5503},[2431,5615,5515],{"mathvariant":5503},[2436,5617,1488],{"stretchy":2438},[5591,5619,5620,5622],{},[2431,5621,5520],{},[2431,5623,5624],{},"d",[2436,5626,2444],{"stretchy":2438},[5540,5628,5629],{},[5543,5630,5631],{"scriptlevel":749,"displaystyle":2438},[5554,5632,5633],{},"sinon",[2446,5635,5636],{"encoding":2448},"\\mathrm{taille}(A) =\n\\begin{cases}\n0 & \\text{si } A \\text{ est vide} \\\\\n1 + \\mathrm{taille}(A_g) + \\mathrm{taille}(A_d) & \\text{sinon}\n\\end{cases}",[701,5638,5640,5671],{"className":5639,"ariaHidden":2454},[2453],[701,5641,5643,5646,5653,5656,5659,5662,5665,5668],{"className":5642},[2458],[701,5644],{"className":5645,"style":2463},[2462],[701,5647,5649],{"className":5648},[2467],[701,5650,5478],{"className":5651},[2467,5652],"mathrm",[701,5654,1488],{"className":5655},[2473],[701,5657,5520],{"className":5658},[2467,2536],[701,5660,2444],{"className":5661},[2480],[701,5663],{"className":5664,"style":5190},[4680],[701,5666,746],{"className":5667},[5194],[701,5669],{"className":5670,"style":5190},[4680],[701,5672,5674,5678],{"className":5673},[2458],[701,5675],{"className":5676,"style":5677},[2462],"height:3em;vertical-align:-1.25em;",[701,5679,5682,5692,5958],{"className":5680},[5681],"minner",[701,5683,5687],{"className":5684,"style":5686},[2473,5685],"delimcenter","top:0em;",[701,5688,5529],{"className":5689},[5690,5691],"delimsizing","size4",[701,5693,5695],{"className":5694},[2467],[701,5696,5698,5892,5897],{"className":5697},[5531],[701,5699,5702],{"className":5700},[5701],"col-align-l",[701,5703,5707,5883],{"className":5704},[5705,5706],"vlist-t","vlist-t2",[701,5708,5711,5880],{"className":5709},[5710],"vlist-r",[701,5712,5716,5730],{"className":5713,"style":5715},[5714],"vlist","height:1.69em;",[701,5717,5719,5724],{"style":5718},"top:-3.69em;",[701,5720],{"className":5721,"style":5723},[5722],"pstrut","height:3.008em;",[701,5725,5727],{"className":5726},[2467],[701,5728,749],{"className":5729},[2467],[701,5731,5733,5736],{"style":5732},"top:-2.25em;",[701,5734],{"className":5735,"style":5723},[5722],[701,5737,5739,5742,5746,5750,5753,5759,5762,5814,5817,5820,5823,5826,5832,5835,5877],{"className":5738},[2467],[701,5740,932],{"className":5741},[2467],[701,5743],{"className":5744,"style":5745},[4680],"margin-right:0.2222em;",[701,5747,1049],{"className":5748},[5749],"mbin",[701,5751],{"className":5752,"style":5745},[4680],[701,5754,5756],{"className":5755},[2467],[701,5757,5478],{"className":5758},[2467,5652],[701,5760,1488],{"className":5761},[2473],[701,5763,5765,5768],{"className":5764},[2467],[701,5766,5520],{"className":5767},[2467,2536],[701,5769,5772],{"className":5770},[5771],"msupsub",[701,5773,5775,5805],{"className":5774},[5705,5706],[701,5776,5778,5800],{"className":5777},[5710],[701,5779,5782],{"className":5780,"style":5781},[5714],"height:0.1514em;",[701,5783,5785,5789],{"style":5784},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[701,5786],{"className":5787,"style":5788},[5722],"height:2.7em;",[701,5790,5796],{"className":5791},[5792,5793,5794,5795],"sizing","reset-size6","size3","mtight",[701,5797,5597],{"className":5798,"style":5799},[2467,2536,5795],"margin-right:0.0359em;",[701,5801,5804],{"className":5802},[5803],"vlist-s","​",[701,5806,5808],{"className":5807},[5710],[701,5809,5812],{"className":5810,"style":5811},[5714],"height:0.2861em;",[701,5813],{},[701,5815,2444],{"className":5816},[2480],[701,5818],{"className":5819,"style":5745},[4680],[701,5821,1049],{"className":5822},[5749],[701,5824],{"className":5825,"style":5745},[4680],[701,5827,5829],{"className":5828},[2467],[701,5830,5478],{"className":5831},[2467,5652],[701,5833,1488],{"className":5834},[2473],[701,5836,5838,5841],{"className":5837},[2467],[701,5839,5520],{"className":5840},[2467,2536],[701,5842,5844],{"className":5843},[5771],[701,5845,5847,5868],{"className":5846},[5705,5706],[701,5848,5850,5865],{"className":5849},[5710],[701,5851,5854],{"className":5852,"style":5853},[5714],"height:0.3361em;",[701,5855,5856,5859],{"style":5784},[701,5857],{"className":5858,"style":5788},[5722],[701,5860,5862],{"className":5861},[5792,5793,5794,5795],[701,5863,5624],{"className":5864},[2467,2536,5795],[701,5866,5804],{"className":5867},[5803],[701,5869,5871],{"className":5870},[5710],[701,5872,5875],{"className":5873,"style":5874},[5714],"height:0.15em;",[701,5876],{},[701,5878,2444],{"className":5879},[2480],[701,5881,5804],{"className":5882},[5803],[701,5884,5886],{"className":5885},[5710],[701,5887,5890],{"className":5888,"style":5889},[5714],"height:1.19em;",[701,5891],{},[701,5893],{"className":5894,"style":5896},[5895],"arraycolsep","width:1em;",[701,5898,5900],{"className":5899},[5701],[701,5901,5903,5950],{"className":5902},[5705,5706],[701,5904,5906,5947],{"className":5905},[5710],[701,5907,5909,5933],{"className":5908,"style":5715},[5714],[701,5910,5911,5914],{"style":5718},[701,5912],{"className":5913,"style":5723},[5722],[701,5915,5917,5924,5927],{"className":5916},[2467],[701,5918,5921],{"className":5919},[2467,5920],"text",[701,5922,5556],{"className":5923},[2467],[701,5925,5520],{"className":5926},[2467,2536],[701,5928,5930],{"className":5929},[2467,5920],[701,5931,5561],{"className":5932},[2467],[701,5934,5935,5938],{"style":5732},[701,5936],{"className":5937,"style":5723},[5722],[701,5939,5941],{"className":5940},[2467],[701,5942,5944],{"className":5943},[2467,5920],[701,5945,5633],{"className":5946},[2467],[701,5948,5804],{"className":5949},[5803],[701,5951,5953],{"className":5952},[5710],[701,5954,5956],{"className":5955,"style":5889},[5714],[701,5957],{},[701,5959],{"className":5960},[2480,5961],"nulldelimiter",[692,5963,5965],{"className":694,"code":5964,"language":696,"meta":697,"style":697},"def taille(noeud):\n    if noeud is None:\n        return 0\n    return 1 + taille(noeud.gauche) + taille(noeud.droite)\n",[623,5966,5967,5976,5990,5996],{"__ignoreMap":697},[701,5968,5969,5971,5973],{"class":703,"line":704},[701,5970,3238],{"class":707},[701,5972,2305],{"class":711},[701,5974,5975],{"class":715},"(noeud):\n",[701,5977,5978,5981,5984,5986,5988],{"class":703,"line":719},[701,5979,5980],{"class":707},"    if",[701,5982,5983],{"class":715}," noeud ",[701,5985,5374],{"class":707},[701,5987,5377],{"class":739},[701,5989,716],{"class":715},[701,5991,5992,5994],{"class":703,"line":726},[701,5993,1107],{"class":707},[701,5995,2294],{"class":739},[701,5997,5998,6001,6004,6007,6010,6012],{"class":703,"line":733},[701,5999,6000],{"class":707},"    return",[701,6002,6003],{"class":739}," 1",[701,6005,6006],{"class":707}," +",[701,6008,6009],{"class":715}," taille(noeud.gauche) ",[701,6011,1049],{"class":707},[701,6013,6014],{"class":715}," taille(noeud.droite)\n",[5476,6016,5099],{"id":6017},"hauteur",[701,6019,6021],{"className":6020},[5485],[701,6022,6024,6176],{"className":6023},[2415],[701,6025,6027],{"className":6026},[2419],[2421,6028,6029],{"xmlns":2423,"display":5494},[2425,6030,6031,6173],{},[2428,6032,6033,6051,6053,6055,6057,6059],{},[2428,6034,6035,6037,6039,6042,6044,6046,6048],{},[2431,6036,4694],{"mathvariant":5503},[2431,6038,4688],{"mathvariant":5503},[2431,6040,6041],{"mathvariant":5503},"u",[2431,6043,4691],{"mathvariant":5503},[2431,6045,5515],{"mathvariant":5503},[2431,6047,6041],{"mathvariant":5503},[2431,6049,6050],{"mathvariant":5503},"r",[2436,6052,1488],{"stretchy":2438},[2431,6054,5520],{},[2436,6056,2444],{"stretchy":2438},[2436,6058,746],{},[2428,6060,6061,6063],{},[2436,6062,5529],{"fence":2454},[5531,6064,6065,6090],{"rowspacing":5533,"columnalign":5534,"columnspacing":5535},[5537,6066,6067,6078],{},[5540,6068,6069],{},[5543,6070,6071],{"scriptlevel":749,"displaystyle":2438},[2428,6072,6073,6076],{},[2436,6074,6075],{},"−",[2440,6077,932],{},[5540,6079,6080],{},[5543,6081,6082],{"scriptlevel":749,"displaystyle":2438},[2428,6083,6084,6086,6088],{},[5554,6085,5556],{},[2431,6087,5520],{},[5554,6089,5561],{},[5537,6091,6092,6167],{},[5540,6093,6094],{},[5543,6095,6096],{"scriptlevel":749,"displaystyle":2438},[2428,6097,6098,6100,6102,6105,6108,6110,6126,6128,6134,6136,6139,6155,6157,6163,6165],{},[2440,6099,932],{},[2436,6101,1049],{},[2431,6103,6104],{},"max",[2436,6106,6107],{},"⁡",[2436,6109,1488],{"stretchy":2438},[2428,6111,6112,6114,6116,6118,6120,6122,6124],{},[2431,6113,4694],{"mathvariant":5503},[2431,6115,4688],{"mathvariant":5503},[2431,6117,6041],{"mathvariant":5503},[2431,6119,4691],{"mathvariant":5503},[2431,6121,5515],{"mathvariant":5503},[2431,6123,6041],{"mathvariant":5503},[2431,6125,6050],{"mathvariant":5503},[2436,6127,1488],{"stretchy":2438},[5591,6129,6130,6132],{},[2431,6131,5520],{},[2431,6133,5597],{},[2436,6135,2444],{"stretchy":2438},[2436,6137,6138],{"separator":2454},",",[2428,6140,6141,6143,6145,6147,6149,6151,6153],{},[2431,6142,4694],{"mathvariant":5503},[2431,6144,4688],{"mathvariant":5503},[2431,6146,6041],{"mathvariant":5503},[2431,6148,4691],{"mathvariant":5503},[2431,6150,5515],{"mathvariant":5503},[2431,6152,6041],{"mathvariant":5503},[2431,6154,6050],{"mathvariant":5503},[2436,6156,1488],{"stretchy":2438},[5591,6158,6159,6161],{},[2431,6160,5520],{},[2431,6162,5624],{},[2436,6164,2444],{"stretchy":2438},[2436,6166,2444],{"stretchy":2438},[5540,6168,6169],{},[5543,6170,6171],{"scriptlevel":749,"displaystyle":2438},[5554,6172,5633],{},[2446,6174,6175],{"encoding":2448},"\\mathrm{hauteur}(A) =\n\\begin{cases}\n-1 & \\text{si } A \\text{ est vide} \\\\\n1 + \\max(\\mathrm{hauteur}(A_g), \\mathrm{hauteur}(A_d)) & \\text{sinon}\n\\end{cases}",[701,6177,6179,6209],{"className":6178,"ariaHidden":2454},[2453],[701,6180,6182,6185,6191,6194,6197,6200,6203,6206],{"className":6181},[2458],[701,6183],{"className":6184,"style":2463},[2462],[701,6186,6188],{"className":6187},[2467],[701,6189,6017],{"className":6190},[2467,5652],[701,6192,1488],{"className":6193},[2473],[701,6195,5520],{"className":6196},[2467,2536],[701,6198,2444],{"className":6199},[2480],[701,6201],{"className":6202,"style":5190},[4680],[701,6204,746],{"className":6205},[5194],[701,6207],{"className":6208,"style":5190},[4680],[701,6210,6212,6215],{"className":6211},[2458],[701,6213],{"className":6214,"style":5677},[2462],[701,6216,6218,6224,6470],{"className":6217},[5681],[701,6219,6221],{"className":6220,"style":5686},[2473,5685],[701,6222,5529],{"className":6223},[5690,5691],[701,6225,6227],{"className":6226},[2467],[701,6228,6230,6407,6410],{"className":6229},[5531],[701,6231,6233],{"className":6232},[5701],[701,6234,6236,6399],{"className":6235},[5705,5706],[701,6237,6239,6396],{"className":6238},[5710],[701,6240,6242,6256],{"className":6241,"style":5715},[5714],[701,6243,6244,6247],{"style":5718},[701,6245],{"className":6246,"style":5723},[5722],[701,6248,6250,6253],{"className":6249},[2467],[701,6251,6075],{"className":6252},[2467],[701,6254,932],{"className":6255},[2467],[701,6257,6258,6261],{"style":5732},[701,6259],{"className":6260,"style":5723},[5722],[701,6262,6264,6267,6270,6273,6276,6280,6283,6289,6292,6332,6335,6339,6343,6349,6352,6392],{"className":6263},[2467],[701,6265,932],{"className":6266},[2467],[701,6268],{"className":6269,"style":5745},[4680],[701,6271,1049],{"className":6272},[5749],[701,6274],{"className":6275,"style":5745},[4680],[701,6277,6104],{"className":6278},[6279],"mop",[701,6281,1488],{"className":6282},[2473],[701,6284,6286],{"className":6285},[2467],[701,6287,6017],{"className":6288},[2467,5652],[701,6290,1488],{"className":6291},[2473],[701,6293,6295,6298],{"className":6294},[2467],[701,6296,5520],{"className":6297},[2467,2536],[701,6299,6301],{"className":6300},[5771],[701,6302,6304,6324],{"className":6303},[5705,5706],[701,6305,6307,6321],{"className":6306},[5710],[701,6308,6310],{"className":6309,"style":5781},[5714],[701,6311,6312,6315],{"style":5784},[701,6313],{"className":6314,"style":5788},[5722],[701,6316,6318],{"className":6317},[5792,5793,5794,5795],[701,6319,5597],{"className":6320,"style":5799},[2467,2536,5795],[701,6322,5804],{"className":6323},[5803],[701,6325,6327],{"className":6326},[5710],[701,6328,6330],{"className":6329,"style":5811},[5714],[701,6331],{},[701,6333,2444],{"className":6334},[2480],[701,6336,6138],{"className":6337},[6338],"mpunct",[701,6340],{"className":6341,"style":6342},[4680],"margin-right:0.1667em;",[701,6344,6346],{"className":6345},[2467],[701,6347,6017],{"className":6348},[2467,5652],[701,6350,1488],{"className":6351},[2473],[701,6353,6355,6358],{"className":6354},[2467],[701,6356,5520],{"className":6357},[2467,2536],[701,6359,6361],{"className":6360},[5771],[701,6362,6364,6384],{"className":6363},[5705,5706],[701,6365,6367,6381],{"className":6366},[5710],[701,6368,6370],{"className":6369,"style":5853},[5714],[701,6371,6372,6375],{"style":5784},[701,6373],{"className":6374,"style":5788},[5722],[701,6376,6378],{"className":6377},[5792,5793,5794,5795],[701,6379,5624],{"className":6380},[2467,2536,5795],[701,6382,5804],{"className":6383},[5803],[701,6385,6387],{"className":6386},[5710],[701,6388,6390],{"className":6389,"style":5874},[5714],[701,6391],{},[701,6393,6395],{"className":6394},[2480],"))",[701,6397,5804],{"className":6398},[5803],[701,6400,6402],{"className":6401},[5710],[701,6403,6405],{"className":6404,"style":5889},[5714],[701,6406],{},[701,6408],{"className":6409,"style":5896},[5895],[701,6411,6413],{"className":6412},[5701],[701,6414,6416,6462],{"className":6415},[5705,5706],[701,6417,6419,6459],{"className":6418},[5710],[701,6420,6422,6445],{"className":6421,"style":5715},[5714],[701,6423,6424,6427],{"style":5718},[701,6425],{"className":6426,"style":5723},[5722],[701,6428,6430,6436,6439],{"className":6429},[2467],[701,6431,6433],{"className":6432},[2467,5920],[701,6434,5556],{"className":6435},[2467],[701,6437,5520],{"className":6438},[2467,2536],[701,6440,6442],{"className":6441},[2467,5920],[701,6443,5561],{"className":6444},[2467],[701,6446,6447,6450],{"style":5732},[701,6448],{"className":6449,"style":5723},[5722],[701,6451,6453],{"className":6452},[2467],[701,6454,6456],{"className":6455},[2467,5920],[701,6457,5633],{"className":6458},[2467],[701,6460,5804],{"className":6461},[5803],[701,6463,6465],{"className":6464},[5710],[701,6466,6468],{"className":6467,"style":5889},[5714],[701,6469],{},[701,6471],{"className":6472},[2480,5961],[600,6474,6475,6476,6566,6567,1185],{},"La convention ",[701,6477,6479,6520],{"className":6478},[2415],[701,6480,6482],{"className":6481},[2419],[2421,6483,6484],{"xmlns":2423},[2425,6485,6486,6517],{},[2428,6487,6488,6504,6506,6509,6511,6513,6515],{},[2428,6489,6490,6492,6494,6496,6498,6500,6502],{},[2431,6491,4694],{"mathvariant":5503},[2431,6493,4688],{"mathvariant":5503},[2431,6495,6041],{"mathvariant":5503},[2431,6497,4691],{"mathvariant":5503},[2431,6499,5515],{"mathvariant":5503},[2431,6501,6041],{"mathvariant":5503},[2431,6503,6050],{"mathvariant":5503},[2436,6505,1488],{"stretchy":2438},[2431,6507,6508],{"mathvariant":5503},"∅",[2436,6510,2444],{"stretchy":2438},[2436,6512,746],{},[2436,6514,6075],{},[2440,6516,932],{},[2446,6518,6519],{"encoding":2448},"\\mathrm{hauteur}(\\emptyset) = -1",[701,6521,6523,6553],{"className":6522,"ariaHidden":2454},[2453],[701,6524,6526,6529,6535,6538,6541,6544,6547,6550],{"className":6525},[2458],[701,6527],{"className":6528,"style":2463},[2462],[701,6530,6532],{"className":6531},[2467],[701,6533,6017],{"className":6534},[2467,5652],[701,6536,1488],{"className":6537},[2473],[701,6539,6508],{"className":6540},[2467],[701,6542,2444],{"className":6543},[2480],[701,6545],{"className":6546,"style":5190},[4680],[701,6548,746],{"className":6549},[5194],[701,6551],{"className":6552,"style":5190},[4680],[701,6554,6556,6560,6563],{"className":6555},[2458],[701,6557],{"className":6558,"style":6559},[2462],"height:0.7278em;vertical-align:-0.0833em;",[701,6561,6075],{"className":6562},[2467],[701,6564,932],{"className":6565},[2467]," rend la formule cohérente : un\narbre à un seul nœud a alors une hauteur ",[701,6568,6570,6608],{"className":6569},[2415],[701,6571,6573],{"className":6572},[2419],[2421,6574,6575],{"xmlns":2423},[2425,6576,6577,6605],{},[2428,6578,6579,6581,6583,6585,6587,6589,6591,6593,6595,6597,6599,6601,6603],{},[2440,6580,932],{},[2436,6582,1049],{},[2431,6584,6104],{},[2436,6586,6107],{},[2436,6588,1488],{"stretchy":2438},[2436,6590,6075],{},[2440,6592,932],{},[2436,6594,6138],{"separator":2454},[2436,6596,6075],{},[2440,6598,932],{},[2436,6600,2444],{"stretchy":2438},[2436,6602,746],{},[2440,6604,749],{},[2446,6606,6607],{"encoding":2448},"1 + \\max(-1, -1) = 0",[701,6609,6611,6629,6671],{"className":6610,"ariaHidden":2454},[2453],[701,6612,6614,6617,6620,6623,6626],{"className":6613},[2458],[701,6615],{"className":6616,"style":6559},[2462],[701,6618,932],{"className":6619},[2467],[701,6621],{"className":6622,"style":5745},[4680],[701,6624,1049],{"className":6625},[5749],[701,6627],{"className":6628,"style":5745},[4680],[701,6630,6632,6635,6638,6641,6644,6647,6650,6653,6656,6659,6662,6665,6668],{"className":6631},[2458],[701,6633],{"className":6634,"style":2463},[2462],[701,6636,6104],{"className":6637},[6279],[701,6639,1488],{"className":6640},[2473],[701,6642,6075],{"className":6643},[2467],[701,6645,932],{"className":6646},[2467],[701,6648,6138],{"className":6649},[6338],[701,6651],{"className":6652,"style":6342},[4680],[701,6654,6075],{"className":6655},[2467],[701,6657,932],{"className":6658},[2467],[701,6660,2444],{"className":6661},[2480],[701,6663],{"className":6664,"style":5190},[4680],[701,6666,746],{"className":6667},[5194],[701,6669],{"className":6670,"style":5190},[4680],[701,6672,6674,6677],{"className":6673},[2458],[701,6675],{"className":6676,"style":5204},[2462],[701,6678,749],{"className":6679},[2467],[692,6681,6683],{"className":694,"code":6682,"language":696,"meta":697,"style":697},"def hauteur(noeud):\n    if noeud is None:\n        return -1\n    return 1 + max(hauteur(noeud.gauche), hauteur(noeud.droite))\n",[623,6684,6685,6694,6706,6716],{"__ignoreMap":697},[701,6686,6687,6689,6692],{"class":703,"line":704},[701,6688,3238],{"class":707},[701,6690,6691],{"class":711}," hauteur",[701,6693,5975],{"class":715},[701,6695,6696,6698,6700,6702,6704],{"class":703,"line":719},[701,6697,5980],{"class":707},[701,6699,5983],{"class":715},[701,6701,5374],{"class":707},[701,6703,5377],{"class":739},[701,6705,716],{"class":715},[701,6707,6708,6710,6713],{"class":703,"line":726},[701,6709,1107],{"class":707},[701,6711,6712],{"class":707}," -",[701,6714,6715],{"class":739},"1\n",[701,6717,6718,6720,6722,6724,6727],{"class":703,"line":733},[701,6719,6000],{"class":707},[701,6721,6003],{"class":739},[701,6723,6006],{"class":707},[701,6725,6726],{"class":739}," max",[701,6728,6729],{"class":715},"(hauteur(noeud.gauche), hauteur(noeud.droite))\n",[595,6731,6733],{"id":6732},"encadrement-de-la-hauteur","Encadrement de la hauteur",[600,6735,6736,6737,6765,6766,6794,6795,6823,6824,1198],{},"Question canonique du BO : pour un arbre binaire de taille ",[701,6738,6740,6753],{"className":6739},[2415],[701,6741,6743],{"className":6742},[2419],[2421,6744,6745],{"xmlns":2423},[2425,6746,6747,6751],{},[2428,6748,6749],{},[2431,6750,2512],{},[2446,6752,2512],{"encoding":2448},[701,6754,6756],{"className":6755,"ariaHidden":2454},[2453],[701,6757,6759,6762],{"className":6758},[2458],[701,6760],{"className":6761,"style":2566},[2462],[701,6763,2512],{"className":6764},[2467,2536]," et de hauteur\n",[701,6767,6769,6782],{"className":6768},[2415],[701,6770,6772],{"className":6771},[2419],[2421,6773,6774],{"xmlns":2423},[2425,6775,6776,6780],{},[2428,6777,6778],{},[2431,6779,4694],{},[2446,6781,4694],{"encoding":2448},[701,6783,6785],{"className":6784,"ariaHidden":2454},[2453],[701,6786,6788,6791],{"className":6787},[2458],[701,6789],{"className":6790,"style":2970},[2462],[701,6792,4694],{"className":6793},[2467,2536],", peut-on borner ",[701,6796,6798,6811],{"className":6797},[2415],[701,6799,6801],{"className":6800},[2419],[2421,6802,6803],{"xmlns":2423},[2425,6804,6805,6809],{},[2428,6806,6807],{},[2431,6808,4694],{},[2446,6810,4694],{"encoding":2448},[701,6812,6814],{"className":6813,"ariaHidden":2454},[2453],[701,6815,6817,6820],{"className":6816},[2458],[701,6818],{"className":6819,"style":2970},[2462],[701,6821,4694],{"className":6822},[2467,2536]," en fonction de ",[701,6825,6827,6840],{"className":6826},[2415],[701,6828,6830],{"className":6829},[2419],[2421,6831,6832],{"xmlns":2423},[2425,6833,6834,6838],{},[2428,6835,6836],{},[2431,6837,2512],{},[2446,6839,2512],{"encoding":2448},[701,6841,6843],{"className":6842,"ariaHidden":2454},[2453],[701,6844,6846,6849],{"className":6845},[2458],[701,6847],{"className":6848,"style":2566},[2462],[701,6850,2512],{"className":6851},[2467,2536],[3009,6853,6855,6915,7128,7131],{"icon":3011,"title":6854},"Théorème",[600,6856,6857,6858,6886,6887,829],{},"Pour tout arbre binaire non vide de taille ",[701,6859,6861,6874],{"className":6860},[2415],[701,6862,6864],{"className":6863},[2419],[2421,6865,6866],{"xmlns":2423},[2425,6867,6868,6872],{},[2428,6869,6870],{},[2431,6871,2512],{},[2446,6873,2512],{"encoding":2448},[701,6875,6877],{"className":6876,"ariaHidden":2454},[2453],[701,6878,6880,6883],{"className":6879},[2458],[701,6881],{"className":6882,"style":2566},[2462],[701,6884,2512],{"className":6885},[2467,2536]," et de hauteur ",[701,6888,6890,6903],{"className":6889},[2415],[701,6891,6893],{"className":6892},[2419],[2421,6894,6895],{"xmlns":2423},[2425,6896,6897,6901],{},[2428,6898,6899],{},[2431,6900,4694],{},[2446,6902,4694],{"encoding":2448},[701,6904,6906],{"className":6905,"ariaHidden":2454},[2453],[701,6907,6909,6912],{"className":6908},[2458],[701,6910],{"className":6911,"style":2970},[2462],[701,6913,4694],{"className":6914},[2467,2536],[600,6916,6917],{},[701,6918,6920,6970],{"className":6919},[2415],[701,6921,6923],{"className":6922},[2419],[2421,6924,6925],{"xmlns":2423},[2425,6926,6927,6967],{},[2428,6928,6929,6940,6942,6944,6946,6948,6950,6952,6954,6957,6959,6961,6963,6965],{},[5591,6930,6931,6938],{},[2428,6932,6933,6936],{},[2431,6934,6935],{},"log",[2436,6937,6107],{},[2440,6939,2355],{},[2436,6941,1488],{"stretchy":2438},[2431,6943,2512],{},[2436,6945,1049],{},[2440,6947,932],{},[2436,6949,2444],{"stretchy":2438},[2436,6951,6075],{},[2440,6953,932],{},[2436,6955,6956],{},"≤",[2431,6958,4694],{},[2436,6960,6956],{},[2431,6962,2512],{},[2436,6964,6075],{},[2440,6966,932],{},[2446,6968,6969],{"encoding":2448},"\\log_2(n+1) - 1 \\le h \\le n - 1",[701,6971,6973,7041,7062,7081,7100,7119],{"className":6972,"ariaHidden":2454},[2453],[701,6974,6976,6979,7026,7029,7032,7035,7038],{"className":6975},[2458],[701,6977],{"className":6978,"style":2463},[2462],[701,6980,6982,6989],{"className":6981},[6279],[701,6983,6985,6986],{"className":6984},[6279],"lo",[701,6987,5597],{"style":6988},"margin-right:0.0139em;",[701,6990,6992],{"className":6991},[5771],[701,6993,6995,7017],{"className":6994},[5705,5706],[701,6996,6998,7014],{"className":6997},[5710],[701,6999,7002],{"className":7000,"style":7001},[5714],"height:0.207em;",[701,7003,7005,7008],{"style":7004},"top:-2.4559em;margin-right:0.05em;",[701,7006],{"className":7007,"style":5788},[5722],[701,7009,7011],{"className":7010},[5792,5793,5794,5795],[701,7012,2355],{"className":7013},[2467,5795],[701,7015,5804],{"className":7016},[5803],[701,7018,7020],{"className":7019},[5710],[701,7021,7024],{"className":7022,"style":7023},[5714],"height:0.2441em;",[701,7025],{},[701,7027,1488],{"className":7028},[2473],[701,7030,2512],{"className":7031},[2467,2536],[701,7033],{"className":7034,"style":5745},[4680],[701,7036,1049],{"className":7037},[5749],[701,7039],{"className":7040,"style":5745},[4680],[701,7042,7044,7047,7050,7053,7056,7059],{"className":7043},[2458],[701,7045],{"className":7046,"style":2463},[2462],[701,7048,932],{"className":7049},[2467],[701,7051,2444],{"className":7052},[2480],[701,7054],{"className":7055,"style":5745},[4680],[701,7057,6075],{"className":7058},[5749],[701,7060],{"className":7061,"style":5745},[4680],[701,7063,7065,7069,7072,7075,7078],{"className":7064},[2458],[701,7066],{"className":7067,"style":7068},[2462],"height:0.7804em;vertical-align:-0.136em;",[701,7070,932],{"className":7071},[2467],[701,7073],{"className":7074,"style":5190},[4680],[701,7076,6956],{"className":7077},[5194],[701,7079],{"className":7080,"style":5190},[4680],[701,7082,7084,7088,7091,7094,7097],{"className":7083},[2458],[701,7085],{"className":7086,"style":7087},[2462],"height:0.8304em;vertical-align:-0.136em;",[701,7089,4694],{"className":7090},[2467,2536],[701,7092],{"className":7093,"style":5190},[4680],[701,7095,6956],{"className":7096},[5194],[701,7098],{"className":7099,"style":5190},[4680],[701,7101,7103,7107,7110,7113,7116],{"className":7102},[2458],[701,7104],{"className":7105,"style":7106},[2462],"height:0.6667em;vertical-align:-0.0833em;",[701,7108,2512],{"className":7109},[2467,2536],[701,7111],{"className":7112,"style":5745},[4680],[701,7114,6075],{"className":7115},[5749],[701,7117],{"className":7118,"style":5745},[4680],[701,7120,7122,7125],{"className":7121},[2458],[701,7123],{"className":7124,"style":5204},[2462],[701,7126,932],{"className":7127},[2467],[600,7129,7130],{},"de manière équivalente :",[600,7132,7133],{},[701,7134,7136,7177],{"className":7135},[2415],[701,7137,7139],{"className":7138},[2419],[2421,7140,7141],{"xmlns":2423},[2425,7142,7143,7174],{},[2428,7144,7145,7147,7149,7151,7153,7155,7157,7170,7172],{},[2431,7146,4694],{},[2436,7148,1049],{},[2440,7150,932],{},[2436,7152,6956],{},[2431,7154,2512],{},[2436,7156,6956],{},[7158,7159,7160,7162],"msup",{},[2440,7161,2355],{},[2428,7163,7164,7166,7168],{},[2431,7165,4694],{},[2436,7167,1049],{},[2440,7169,932],{},[2436,7171,6075],{},[2440,7173,932],{},[2446,7175,7176],{"encoding":2448},"h + 1 \\le n \\le 2^{h+1} - 1",[701,7178,7180,7199,7217,7236,7292],{"className":7179,"ariaHidden":2454},[2453],[701,7181,7183,7187,7190,7193,7196],{"className":7182},[2458],[701,7184],{"className":7185,"style":7186},[2462],"height:0.7778em;vertical-align:-0.0833em;",[701,7188,4694],{"className":7189},[2467,2536],[701,7191],{"className":7192,"style":5745},[4680],[701,7194,1049],{"className":7195},[5749],[701,7197],{"className":7198,"style":5745},[4680],[701,7200,7202,7205,7208,7211,7214],{"className":7201},[2458],[701,7203],{"className":7204,"style":7068},[2462],[701,7206,932],{"className":7207},[2467],[701,7209],{"className":7210,"style":5190},[4680],[701,7212,6956],{"className":7213},[5194],[701,7215],{"className":7216,"style":5190},[4680],[701,7218,7220,7224,7227,7230,7233],{"className":7219},[2458],[701,7221],{"className":7222,"style":7223},[2462],"height:0.7719em;vertical-align:-0.136em;",[701,7225,2512],{"className":7226},[2467,2536],[701,7228],{"className":7229,"style":5190},[4680],[701,7231,6956],{"className":7232},[5194],[701,7234],{"className":7235,"style":5190},[4680],[701,7237,7239,7243,7283,7286,7289],{"className":7238},[2458],[701,7240],{"className":7241,"style":7242},[2462],"height:0.9324em;vertical-align:-0.0833em;",[701,7244,7246,7249],{"className":7245},[2467],[701,7247,2355],{"className":7248},[2467],[701,7250,7252],{"className":7251},[5771],[701,7253,7255],{"className":7254},[5705],[701,7256,7258],{"className":7257},[5710],[701,7259,7262],{"className":7260,"style":7261},[5714],"height:0.8491em;",[701,7263,7265,7268],{"style":7264},"top:-3.063em;margin-right:0.05em;",[701,7266],{"className":7267,"style":5788},[5722],[701,7269,7271],{"className":7270},[5792,5793,5794,5795],[701,7272,7274,7277,7280],{"className":7273},[2467,5795],[701,7275,4694],{"className":7276},[2467,2536,5795],[701,7278,1049],{"className":7279},[5749,5795],[701,7281,932],{"className":7282},[2467,5795],[701,7284],{"className":7285,"style":5745},[4680],[701,7287,6075],{"className":7288},[5749],[701,7290],{"className":7291,"style":5745},[4680],[701,7293,7295,7298],{"className":7294},[2458],[701,7296],{"className":7297,"style":5204},[2462],[701,7299,932],{"className":7300},[2467],[5476,7302,7304],{"id":7303},"preuve-par-récurrence","Preuve par récurrence",[600,7306,7307,7310,7311,7339,7340,1185],{},[604,7308,7309],{},"Montrons"," : un arbre binaire de hauteur ",[701,7312,7314,7327],{"className":7313},[2415],[701,7315,7317],{"className":7316},[2419],[2421,7318,7319],{"xmlns":2423},[2425,7320,7321,7325],{},[2428,7322,7323],{},[2431,7324,4694],{},[2446,7326,4694],{"encoding":2448},[701,7328,7330],{"className":7329,"ariaHidden":2454},[2453],[701,7331,7333,7336],{"className":7332},[2458],[701,7334],{"className":7335,"style":2970},[2462],[701,7337,4694],{"className":7338},[2467,2536]," vérifie ",[701,7341,7343,7382],{"className":7342},[2415],[701,7344,7346],{"className":7345},[2419],[2421,7347,7348],{"xmlns":2423},[2425,7349,7350,7380],{},[2428,7351,7352,7354,7356,7358,7360,7362,7364,7376,7378],{},[2431,7353,4694],{},[2436,7355,1049],{},[2440,7357,932],{},[2436,7359,6956],{},[2431,7361,2512],{},[2436,7363,6956],{},[7158,7365,7366,7368],{},[2440,7367,2355],{},[2428,7369,7370,7372,7374],{},[2431,7371,4694],{},[2436,7373,1049],{},[2440,7375,932],{},[2436,7377,6075],{},[2440,7379,932],{},[2446,7381,7176],{"encoding":2448},[701,7383,7385,7403,7421,7439,7492],{"className":7384,"ariaHidden":2454},[2453],[701,7386,7388,7391,7394,7397,7400],{"className":7387},[2458],[701,7389],{"className":7390,"style":7186},[2462],[701,7392,4694],{"className":7393},[2467,2536],[701,7395],{"className":7396,"style":5745},[4680],[701,7398,1049],{"className":7399},[5749],[701,7401],{"className":7402,"style":5745},[4680],[701,7404,7406,7409,7412,7415,7418],{"className":7405},[2458],[701,7407],{"className":7408,"style":7068},[2462],[701,7410,932],{"className":7411},[2467],[701,7413],{"className":7414,"style":5190},[4680],[701,7416,6956],{"className":7417},[5194],[701,7419],{"className":7420,"style":5190},[4680],[701,7422,7424,7427,7430,7433,7436],{"className":7423},[2458],[701,7425],{"className":7426,"style":7223},[2462],[701,7428,2512],{"className":7429},[2467,2536],[701,7431],{"className":7432,"style":5190},[4680],[701,7434,6956],{"className":7435},[5194],[701,7437],{"className":7438,"style":5190},[4680],[701,7440,7442,7445,7483,7486,7489],{"className":7441},[2458],[701,7443],{"className":7444,"style":7242},[2462],[701,7446,7448,7451],{"className":7447},[2467],[701,7449,2355],{"className":7450},[2467],[701,7452,7454],{"className":7453},[5771],[701,7455,7457],{"className":7456},[5705],[701,7458,7460],{"className":7459},[5710],[701,7461,7463],{"className":7462,"style":7261},[5714],[701,7464,7465,7468],{"style":7264},[701,7466],{"className":7467,"style":5788},[5722],[701,7469,7471],{"className":7470},[5792,5793,5794,5795],[701,7472,7474,7477,7480],{"className":7473},[2467,5795],[701,7475,4694],{"className":7476},[2467,2536,5795],[701,7478,1049],{"className":7479},[5749,5795],[701,7481,932],{"className":7482},[2467,5795],[701,7484],{"className":7485,"style":5745},[4680],[701,7487,6075],{"className":7488},[5749],[701,7490],{"className":7491,"style":5745},[4680],[701,7493,7495,7498],{"className":7494},[2458],[701,7496],{"className":7497,"style":5204},[2462],[701,7499,932],{"className":7500},[2467],[600,7502,7503,790,7506,7556,7557,7607,7608,7681,7682,7800,7801,7874],{},[604,7504,7505],{},"Initialisation",[701,7507,7509,7526],{"className":7508},[2415],[701,7510,7512],{"className":7511},[2419],[2421,7513,7514],{"xmlns":2423},[2425,7515,7516,7524],{},[2428,7517,7518,7520,7522],{},[2431,7519,4694],{},[2436,7521,746],{},[2440,7523,749],{},[2446,7525,5174],{"encoding":2448},[701,7527,7529,7547],{"className":7528,"ariaHidden":2454},[2453],[701,7530,7532,7535,7538,7541,7544],{"className":7531},[2458],[701,7533],{"className":7534,"style":2970},[2462],[701,7536,4694],{"className":7537},[2467,2536],[701,7539],{"className":7540,"style":5190},[4680],[701,7542,746],{"className":7543},[5194],[701,7545],{"className":7546,"style":5190},[4680],[701,7548,7550,7553],{"className":7549},[2458],[701,7551],{"className":7552,"style":5204},[2462],[701,7554,749],{"className":7555},[2467],"). L'arbre est réduit à sa racine. On a ",[701,7558,7560,7577],{"className":7559},[2415],[701,7561,7563],{"className":7562},[2419],[2421,7564,7565],{"xmlns":2423},[2425,7566,7567,7575],{},[2428,7568,7569,7571,7573],{},[2431,7570,2512],{},[2436,7572,746],{},[2440,7574,932],{},[2446,7576,5229],{"encoding":2448},[701,7578,7580,7598],{"className":7579,"ariaHidden":2454},[2453],[701,7581,7583,7586,7589,7592,7595],{"className":7582},[2458],[701,7584],{"className":7585,"style":2566},[2462],[701,7587,2512],{"className":7588},[2467,2536],[701,7590],{"className":7591,"style":5190},[4680],[701,7593,746],{"className":7594},[5194],[701,7596],{"className":7597,"style":5190},[4680],[701,7599,7601,7604],{"className":7600},[2458],[701,7602],{"className":7603,"style":5204},[2462],[701,7605,932],{"className":7606},[2467],", et\n",[701,7609,7611,7633],{"className":7610},[2415],[701,7612,7614],{"className":7613},[2419],[2421,7615,7616],{"xmlns":2423},[2425,7617,7618,7630],{},[2428,7619,7620,7622,7624,7626,7628],{},[2431,7621,4694],{},[2436,7623,1049],{},[2440,7625,932],{},[2436,7627,746],{},[2440,7629,932],{},[2446,7631,7632],{"encoding":2448},"h + 1 = 1",[701,7634,7636,7654,7672],{"className":7635,"ariaHidden":2454},[2453],[701,7637,7639,7642,7645,7648,7651],{"className":7638},[2458],[701,7640],{"className":7641,"style":7186},[2462],[701,7643,4694],{"className":7644},[2467,2536],[701,7646],{"className":7647,"style":5745},[4680],[701,7649,1049],{"className":7650},[5749],[701,7652],{"className":7653,"style":5745},[4680],[701,7655,7657,7660,7663,7666,7669],{"className":7656},[2458],[701,7658],{"className":7659,"style":5204},[2462],[701,7661,932],{"className":7662},[2467],[701,7664],{"className":7665,"style":5190},[4680],[701,7667,746],{"className":7668},[5194],[701,7670],{"className":7671,"style":5190},[4680],[701,7673,7675,7678],{"className":7674},[2458],[701,7676],{"className":7677,"style":5204},[2462],[701,7679,932],{"className":7680},[2467],", et ",[701,7683,7685,7717],{"className":7684},[2415],[701,7686,7688],{"className":7687},[2419],[2421,7689,7690],{"xmlns":2423},[2425,7691,7692,7714],{},[2428,7693,7694,7706,7708,7710,7712],{},[7158,7695,7696,7698],{},[2440,7697,2355],{},[2428,7699,7700,7702,7704],{},[2431,7701,4694],{},[2436,7703,1049],{},[2440,7705,932],{},[2436,7707,6075],{},[2440,7709,932],{},[2436,7711,746],{},[2440,7713,932],{},[2446,7715,7716],{"encoding":2448},"2^{h+1} - 1 = 1",[701,7718,7720,7773,7791],{"className":7719,"ariaHidden":2454},[2453],[701,7721,7723,7726,7764,7767,7770],{"className":7722},[2458],[701,7724],{"className":7725,"style":7242},[2462],[701,7727,7729,7732],{"className":7728},[2467],[701,7730,2355],{"className":7731},[2467],[701,7733,7735],{"className":7734},[5771],[701,7736,7738],{"className":7737},[5705],[701,7739,7741],{"className":7740},[5710],[701,7742,7744],{"className":7743,"style":7261},[5714],[701,7745,7746,7749],{"style":7264},[701,7747],{"className":7748,"style":5788},[5722],[701,7750,7752],{"className":7751},[5792,5793,5794,5795],[701,7753,7755,7758,7761],{"className":7754},[2467,5795],[701,7756,4694],{"className":7757},[2467,2536,5795],[701,7759,1049],{"className":7760},[5749,5795],[701,7762,932],{"className":7763},[2467,5795],[701,7765],{"className":7766,"style":5745},[4680],[701,7768,6075],{"className":7769},[5749],[701,7771],{"className":7772,"style":5745},[4680],[701,7774,7776,7779,7782,7785,7788],{"className":7775},[2458],[701,7777],{"className":7778,"style":5204},[2462],[701,7780,932],{"className":7781},[2467],[701,7783],{"className":7784,"style":5190},[4680],[701,7786,746],{"className":7787},[5194],[701,7789],{"className":7790,"style":5190},[4680],[701,7792,7794,7797],{"className":7793},[2458],[701,7795],{"className":7796,"style":5204},[2462],[701,7798,932],{"className":7799},[2467],". L'inégalité ",[701,7802,7804,7826],{"className":7803},[2415],[701,7805,7807],{"className":7806},[2419],[2421,7808,7809],{"xmlns":2423},[2425,7810,7811,7823],{},[2428,7812,7813,7815,7817,7819,7821],{},[2440,7814,932],{},[2436,7816,6956],{},[2440,7818,932],{},[2436,7820,6956],{},[2440,7822,932],{},[2446,7824,7825],{"encoding":2448},"1 \\le 1 \\le 1",[701,7827,7829,7847,7865],{"className":7828,"ariaHidden":2454},[2453],[701,7830,7832,7835,7838,7841,7844],{"className":7831},[2458],[701,7833],{"className":7834,"style":7068},[2462],[701,7836,932],{"className":7837},[2467],[701,7839],{"className":7840,"style":5190},[4680],[701,7842,6956],{"className":7843},[5194],[701,7845],{"className":7846,"style":5190},[4680],[701,7848,7850,7853,7856,7859,7862],{"className":7849},[2458],[701,7851],{"className":7852,"style":7068},[2462],[701,7854,932],{"className":7855},[2467],[701,7857],{"className":7858,"style":5190},[4680],[701,7860,6956],{"className":7861},[5194],[701,7863],{"className":7864,"style":5190},[4680],[701,7866,7868,7871],{"className":7867},[2458],[701,7869],{"className":7870,"style":5204},[2462],[701,7872,932],{"className":7873},[2467]," tient.",[600,7876,7877,7880,7881,7909,7910,7962,7963,7992,7993,8021,8022,1967,8093,8164,8165,7681,8230,8233,8234,8285,8286,8314,8315,794],{},[604,7878,7879],{},"Hérédité."," Supposons la propriété vraie pour toute hauteur strictement\ninférieure à ",[701,7882,7884,7897],{"className":7883},[2415],[701,7885,7887],{"className":7886},[2419],[2421,7888,7889],{"xmlns":2423},[2425,7890,7891,7895],{},[2428,7892,7893],{},[2431,7894,4694],{},[2446,7896,4694],{"encoding":2448},[701,7898,7900],{"className":7899,"ariaHidden":2454},[2453],[701,7901,7903,7906],{"className":7902},[2458],[701,7904],{"className":7905,"style":2970},[2462],[701,7907,4694],{"className":7908},[2467,2536]," (avec ",[701,7911,7913,7932],{"className":7912},[2415],[701,7914,7916],{"className":7915},[2419],[2421,7917,7918],{"xmlns":2423},[2425,7919,7920,7929],{},[2428,7921,7922,7924,7927],{},[2431,7923,4694],{},[2436,7925,7926],{},"≥",[2440,7928,932],{},[2446,7930,7931],{"encoding":2448},"h \\ge 1",[701,7933,7935,7953],{"className":7934,"ariaHidden":2454},[2453],[701,7936,7938,7941,7944,7947,7950],{"className":7937},[2458],[701,7939],{"className":7940,"style":7087},[2462],[701,7942,4694],{"className":7943},[2467,2536],[701,7945],{"className":7946,"style":5190},[4680],[701,7948,7926],{"className":7949},[5194],[701,7951],{"className":7952,"style":5190},[4680],[701,7954,7956,7959],{"className":7955},[2458],[701,7957],{"className":7958,"style":5204},[2462],[701,7960,932],{"className":7961},[2467],"). Soit ",[701,7964,7966,7979],{"className":7965},[2415],[701,7967,7969],{"className":7968},[2419],[2421,7970,7971],{"xmlns":2423},[2425,7972,7973,7977],{},[2428,7974,7975],{},[2431,7976,5520],{},[2446,7978,5520],{"encoding":2448},[701,7980,7982],{"className":7981,"ariaHidden":2454},[2453],[701,7983,7985,7989],{"className":7984},[2458],[701,7986],{"className":7987,"style":7988},[2462],"height:0.6833em;",[701,7990,5520],{"className":7991},[2467,2536]," un arbre binaire de hauteur ",[701,7994,7996,8009],{"className":7995},[2415],[701,7997,7999],{"className":7998},[2419],[2421,8000,8001],{"xmlns":2423},[2425,8002,8003,8007],{},[2428,8004,8005],{},[2431,8006,4694],{},[2446,8008,4694],{"encoding":2448},[701,8010,8012],{"className":8011,"ariaHidden":2454},[2453],[701,8013,8015,8018],{"className":8014},[2458],[701,8016],{"className":8017,"style":2970},[2462],[701,8019,4694],{"className":8020},[2467,2536],".\nSes sous-arbres ",[701,8023,8025,8043],{"className":8024},[2415],[701,8026,8028],{"className":8027},[2419],[2421,8029,8030],{"xmlns":2423},[2425,8031,8032,8040],{},[2428,8033,8034],{},[5591,8035,8036,8038],{},[2431,8037,5520],{},[2431,8039,5597],{},[2446,8041,8042],{"encoding":2448},"A_g",[701,8044,8046],{"className":8045,"ariaHidden":2454},[2453],[701,8047,8049,8053],{"className":8048},[2458],[701,8050],{"className":8051,"style":8052},[2462],"height:0.9694em;vertical-align:-0.2861em;",[701,8054,8056,8059],{"className":8055},[2467],[701,8057,5520],{"className":8058},[2467,2536],[701,8060,8062],{"className":8061},[5771],[701,8063,8065,8085],{"className":8064},[5705,5706],[701,8066,8068,8082],{"className":8067},[5710],[701,8069,8071],{"className":8070,"style":5781},[5714],[701,8072,8073,8076],{"style":5784},[701,8074],{"className":8075,"style":5788},[5722],[701,8077,8079],{"className":8078},[5792,5793,5794,5795],[701,8080,5597],{"className":8081,"style":5799},[2467,2536,5795],[701,8083,5804],{"className":8084},[5803],[701,8086,8088],{"className":8087},[5710],[701,8089,8091],{"className":8090,"style":5811},[5714],[701,8092],{},[701,8094,8096,8114],{"className":8095},[2415],[701,8097,8099],{"className":8098},[2419],[2421,8100,8101],{"xmlns":2423},[2425,8102,8103,8111],{},[2428,8104,8105],{},[5591,8106,8107,8109],{},[2431,8108,5520],{},[2431,8110,5624],{},[2446,8112,8113],{"encoding":2448},"A_d",[701,8115,8117],{"className":8116,"ariaHidden":2454},[2453],[701,8118,8120,8124],{"className":8119},[2458],[701,8121],{"className":8122,"style":8123},[2462],"height:0.8333em;vertical-align:-0.15em;",[701,8125,8127,8130],{"className":8126},[2467],[701,8128,5520],{"className":8129},[2467,2536],[701,8131,8133],{"className":8132},[5771],[701,8134,8136,8156],{"className":8135},[5705,5706],[701,8137,8139,8153],{"className":8138},[5710],[701,8140,8142],{"className":8141,"style":5853},[5714],[701,8143,8144,8147],{"style":5784},[701,8145],{"className":8146,"style":5788},[5722],[701,8148,8150],{"className":8149},[5792,5793,5794,5795],[701,8151,5624],{"className":8152},[2467,2536,5795],[701,8154,5804],{"className":8155},[5803],[701,8157,8159],{"className":8158},[5710],[701,8160,8162],{"className":8161,"style":5874},[5714],[701,8163],{}," ont chacun une hauteur ",[701,8166,8168,8188],{"className":8167},[2415],[701,8169,8171],{"className":8170},[2419],[2421,8172,8173],{"xmlns":2423},[2425,8174,8175,8185],{},[2428,8176,8177,8179,8181,8183],{},[2436,8178,6956],{},[2431,8180,4694],{},[2436,8182,6075],{},[2440,8184,932],{},[2446,8186,8187],{"encoding":2448},"\\le h - 1",[701,8189,8191,8203,8221],{"className":8190,"ariaHidden":2454},[2453],[701,8192,8194,8197,8200],{"className":8193},[2458],[701,8195],{"className":8196,"style":7223},[2462],[701,8198,6956],{"className":8199},[5194],[701,8201],{"className":8202,"style":5190},[4680],[701,8204,8206,8209,8212,8215,8218],{"className":8205},[2458],[701,8207],{"className":8208,"style":7186},[2462],[701,8210,4694],{"className":8211},[2467,2536],[701,8213],{"className":8214,"style":5745},[4680],[701,8216,6075],{"className":8217},[5749],[701,8219],{"className":8220,"style":5745},[4680],[701,8222,8224,8227],{"className":8223},[2458],[701,8225],{"className":8226,"style":5204},[2462],[701,8228,932],{"className":8229},[2467],[604,8231,8232],{},"au\nmoins l'un des deux"," atteint ",[701,8235,8237,8255],{"className":8236},[2415],[701,8238,8240],{"className":8239},[2419],[2421,8241,8242],{"xmlns":2423},[2425,8243,8244,8252],{},[2428,8245,8246,8248,8250],{},[2431,8247,4694],{},[2436,8249,6075],{},[2440,8251,932],{},[2446,8253,8254],{"encoding":2448},"h - 1",[701,8256,8258,8276],{"className":8257,"ariaHidden":2454},[2453],[701,8259,8261,8264,8267,8270,8273],{"className":8260},[2458],[701,8262],{"className":8263,"style":7186},[2462],[701,8265,4694],{"className":8266},[2467,2536],[701,8268],{"className":8269,"style":5745},[4680],[701,8271,6075],{"className":8272},[5749],[701,8274],{"className":8275,"style":5745},[4680],[701,8277,8279,8282],{"className":8278},[2458],[701,8280],{"className":8281,"style":5204},[2462],[701,8283,932],{"className":8284},[2467]," (sinon ",[701,8287,8289,8302],{"className":8288},[2415],[701,8290,8292],{"className":8291},[2419],[2421,8293,8294],{"xmlns":2423},[2425,8295,8296,8300],{},[2428,8297,8298],{},[2431,8299,5520],{},[2446,8301,5520],{"encoding":2448},[701,8303,8305],{"className":8304,"ariaHidden":2454},[2453],[701,8306,8308,8311],{"className":8307},[2458],[701,8309],{"className":8310,"style":7988},[2462],[701,8312,5520],{"className":8313},[2467,2536]," aurait une hauteur strictement\ninférieure à ",[701,8316,8318,8331],{"className":8317},[2415],[701,8319,8321],{"className":8320},[2419],[2421,8322,8323],{"xmlns":2423},[2425,8324,8325,8329],{},[2428,8326,8327],{},[2431,8328,4694],{},[2446,8330,4694],{"encoding":2448},[701,8332,8334],{"className":8333,"ariaHidden":2454},[2453],[701,8335,8337,8340],{"className":8336},[2458],[701,8338],{"className":8339,"style":2970},[2462],[701,8341,4694],{"className":8342},[2467,2536],[775,8344,8345,8654],{},[778,8346,8347,8350,8351,8401,8402,8507,8508,8536,8537,1185],{},[604,8348,8349],{},"Minoration."," Le sous-arbre qui atteint ",[701,8352,8354,8371],{"className":8353},[2415],[701,8355,8357],{"className":8356},[2419],[2421,8358,8359],{"xmlns":2423},[2425,8360,8361,8369],{},[2428,8362,8363,8365,8367],{},[2431,8364,4694],{},[2436,8366,6075],{},[2440,8368,932],{},[2446,8370,8254],{"encoding":2448},[701,8372,8374,8392],{"className":8373,"ariaHidden":2454},[2453],[701,8375,8377,8380,8383,8386,8389],{"className":8376},[2458],[701,8378],{"className":8379,"style":7186},[2462],[701,8381,4694],{"className":8382},[2467,2536],[701,8384],{"className":8385,"style":5745},[4680],[701,8387,6075],{"className":8388},[5749],[701,8390],{"className":8391,"style":5745},[4680],[701,8393,8395,8398],{"className":8394},[2458],[701,8396],{"className":8397,"style":5204},[2462],[701,8399,932],{"className":8400},[2467]," contient au moins\n",[701,8403,8405,8435],{"className":8404},[2415],[701,8406,8408],{"className":8407},[2419],[2421,8409,8410],{"xmlns":2423},[2425,8411,8412,8432],{},[2428,8413,8414,8416,8418,8420,8422,8424,8426,8428,8430],{},[2436,8415,1488],{"stretchy":2438},[2431,8417,4694],{},[2436,8419,6075],{},[2440,8421,932],{},[2436,8423,2444],{"stretchy":2438},[2436,8425,1049],{},[2440,8427,932],{},[2436,8429,746],{},[2431,8431,4694],{},[2446,8433,8434],{"encoding":2448},"(h - 1) + 1 = h",[701,8436,8438,8459,8480,8498],{"className":8437,"ariaHidden":2454},[2453],[701,8439,8441,8444,8447,8450,8453,8456],{"className":8440},[2458],[701,8442],{"className":8443,"style":2463},[2462],[701,8445,1488],{"className":8446},[2473],[701,8448,4694],{"className":8449},[2467,2536],[701,8451],{"className":8452,"style":5745},[4680],[701,8454,6075],{"className":8455},[5749],[701,8457],{"className":8458,"style":5745},[4680],[701,8460,8462,8465,8468,8471,8474,8477],{"className":8461},[2458],[701,8463],{"className":8464,"style":2463},[2462],[701,8466,932],{"className":8467},[2467],[701,8469,2444],{"className":8470},[2480],[701,8472],{"className":8473,"style":5745},[4680],[701,8475,1049],{"className":8476},[5749],[701,8478],{"className":8479,"style":5745},[4680],[701,8481,8483,8486,8489,8492,8495],{"className":8482},[2458],[701,8484],{"className":8485,"style":5204},[2462],[701,8487,932],{"className":8488},[2467],[701,8490],{"className":8491,"style":5190},[4680],[701,8493,746],{"className":8494},[5194],[701,8496],{"className":8497,"style":5190},[4680],[701,8499,8501,8504],{"className":8500},[2458],[701,8502],{"className":8503,"style":2970},[2462],[701,8505,4694],{"className":8506},[2467,2536]," nœuds par hypothèse de récurrence. Avec la racine de ",[701,8509,8511,8524],{"className":8510},[2415],[701,8512,8514],{"className":8513},[2419],[2421,8515,8516],{"xmlns":2423},[2425,8517,8518,8522],{},[2428,8519,8520],{},[2431,8521,5520],{},[2446,8523,5520],{"encoding":2448},[701,8525,8527],{"className":8526,"ariaHidden":2454},[2453],[701,8528,8530,8533],{"className":8529},[2458],[701,8531],{"className":8532,"style":7988},[2462],[701,8534,5520],{"className":8535},[2467,2536],",\non a donc ",[701,8538,8540,8570],{"className":8539},[2415],[701,8541,8543],{"className":8542},[2419],[2421,8544,8545],{"xmlns":2423},[2425,8546,8547,8567],{},[2428,8548,8549,8551,8553,8555,8557,8559,8561,8563,8565],{},[2431,8550,2512],{},[2436,8552,7926],{},[2440,8554,932],{},[2436,8556,1049],{},[2431,8558,4694],{},[2436,8560,746],{},[2431,8562,4694],{},[2436,8564,1049],{},[2440,8566,932],{},[2446,8568,8569],{"encoding":2448},"n \\ge 1 + h = h + 1",[701,8571,8573,8591,8609,8627,8645],{"className":8572,"ariaHidden":2454},[2453],[701,8574,8576,8579,8582,8585,8588],{"className":8575},[2458],[701,8577],{"className":8578,"style":7223},[2462],[701,8580,2512],{"className":8581},[2467,2536],[701,8583],{"className":8584,"style":5190},[4680],[701,8586,7926],{"className":8587},[5194],[701,8589],{"className":8590,"style":5190},[4680],[701,8592,8594,8597,8600,8603,8606],{"className":8593},[2458],[701,8595],{"className":8596,"style":6559},[2462],[701,8598,932],{"className":8599},[2467],[701,8601],{"className":8602,"style":5745},[4680],[701,8604,1049],{"className":8605},[5749],[701,8607],{"className":8608,"style":5745},[4680],[701,8610,8612,8615,8618,8621,8624],{"className":8611},[2458],[701,8613],{"className":8614,"style":2970},[2462],[701,8616,4694],{"className":8617},[2467,2536],[701,8619],{"className":8620,"style":5190},[4680],[701,8622,746],{"className":8623},[5194],[701,8625],{"className":8626,"style":5190},[4680],[701,8628,8630,8633,8636,8639,8642],{"className":8629},[2458],[701,8631],{"className":8632,"style":7186},[2462],[701,8634,4694],{"className":8635},[2467,2536],[701,8637],{"className":8638,"style":5745},[4680],[701,8640,1049],{"className":8641},[5749],[701,8643],{"className":8644,"style":5745},[4680],[701,8646,8648,8651],{"className":8647},[2458],[701,8649],{"className":8650,"style":5204},[2462],[701,8652,932],{"className":8653},[2467],[778,8655,8656,8659,8660,8744,8745],{},[604,8657,8658],{},"Majoration."," Chaque sous-arbre a au plus ",[701,8661,8663,8685],{"className":8662},[2415],[701,8664,8666],{"className":8665},[2419],[2421,8667,8668],{"xmlns":2423},[2425,8669,8670,8682],{},[2428,8671,8672,8678,8680],{},[7158,8673,8674,8676],{},[2440,8675,2355],{},[2431,8677,4694],{},[2436,8679,6075],{},[2440,8681,932],{},[2446,8683,8684],{"encoding":2448},"2^{h} - 1",[701,8686,8688,8735],{"className":8687,"ariaHidden":2454},[2453],[701,8689,8691,8694,8726,8729,8732],{"className":8690},[2458],[701,8692],{"className":8693,"style":7242},[2462],[701,8695,8697,8700],{"className":8696},[2467],[701,8698,2355],{"className":8699},[2467],[701,8701,8703],{"className":8702},[5771],[701,8704,8706],{"className":8705},[5705],[701,8707,8709],{"className":8708},[5710],[701,8710,8712],{"className":8711,"style":7261},[5714],[701,8713,8714,8717],{"style":7264},[701,8715],{"className":8716,"style":5788},[5722],[701,8718,8720],{"className":8719},[5792,5793,5794,5795],[701,8721,8723],{"className":8722},[2467,5795],[701,8724,4694],{"className":8725},[2467,2536,5795],[701,8727],{"className":8728,"style":5745},[4680],[701,8730,6075],{"className":8731},[5749],[701,8733],{"className":8734,"style":5745},[4680],[701,8736,8738,8741],{"className":8737},[2458],[701,8739],{"className":8740,"style":5204},[2462],[701,8742,932],{"className":8743},[2467]," nœuds par hypothèse de\nrécurrence. Donc\n",[701,8746,8748,8803],{"className":8747},[2415],[701,8749,8751],{"className":8750},[2419],[2421,8752,8753],{"xmlns":2423},[2425,8754,8755,8800],{},[2428,8756,8757,8759,8761,8763,8765,8767,8769,8775,8777,8779,8781,8783,8795,8797],{},[2431,8758,2512],{},[2436,8760,6956],{},[2440,8762,932],{},[2436,8764,1049],{},[2440,8766,2355],{},[2436,8768,1488],{"stretchy":2438},[7158,8770,8771,8773],{},[2440,8772,2355],{},[2431,8774,4694],{},[2436,8776,6075],{},[2440,8778,932],{},[2436,8780,2444],{"stretchy":2438},[2436,8782,746],{},[7158,8784,8785,8787],{},[2440,8786,2355],{},[2428,8788,8789,8791,8793],{},[2431,8790,4694],{},[2436,8792,1049],{},[2440,8794,932],{},[2436,8796,6075],{},[2440,8798,8799],{},"1.",[2446,8801,8802],{"encoding":2448},"n \\le 1 + 2(2^{h} - 1) = 2^{h+1} - 1.",[701,8804,8806,8824,8842,8896,8917,8970],{"className":8805,"ariaHidden":2454},[2453],[701,8807,8809,8812,8815,8818,8821],{"className":8808},[2458],[701,8810],{"className":8811,"style":7223},[2462],[701,8813,2512],{"className":8814},[2467,2536],[701,8816],{"className":8817,"style":5190},[4680],[701,8819,6956],{"className":8820},[5194],[701,8822],{"className":8823,"style":5190},[4680],[701,8825,8827,8830,8833,8836,8839],{"className":8826},[2458],[701,8828],{"className":8829,"style":6559},[2462],[701,8831,932],{"className":8832},[2467],[701,8834],{"className":8835,"style":5745},[4680],[701,8837,1049],{"className":8838},[5749],[701,8840],{"className":8841,"style":5745},[4680],[701,8843,8845,8849,8852,8855,8887,8890,8893],{"className":8844},[2458],[701,8846],{"className":8847,"style":8848},[2462],"height:1.0991em;vertical-align:-0.25em;",[701,8850,2355],{"className":8851},[2467],[701,8853,1488],{"className":8854},[2473],[701,8856,8858,8861],{"className":8857},[2467],[701,8859,2355],{"className":8860},[2467],[701,8862,8864],{"className":8863},[5771],[701,8865,8867],{"className":8866},[5705],[701,8868,8870],{"className":8869},[5710],[701,8871,8873],{"className":8872,"style":7261},[5714],[701,8874,8875,8878],{"style":7264},[701,8876],{"className":8877,"style":5788},[5722],[701,8879,8881],{"className":8880},[5792,5793,5794,5795],[701,8882,8884],{"className":8883},[2467,5795],[701,8885,4694],{"className":8886},[2467,2536,5795],[701,8888],{"className":8889,"style":5745},[4680],[701,8891,6075],{"className":8892},[5749],[701,8894],{"className":8895,"style":5745},[4680],[701,8897,8899,8902,8905,8908,8911,8914],{"className":8898},[2458],[701,8900],{"className":8901,"style":2463},[2462],[701,8903,932],{"className":8904},[2467],[701,8906,2444],{"className":8907},[2480],[701,8909],{"className":8910,"style":5190},[4680],[701,8912,746],{"className":8913},[5194],[701,8915],{"className":8916,"style":5190},[4680],[701,8918,8920,8923,8961,8964,8967],{"className":8919},[2458],[701,8921],{"className":8922,"style":7242},[2462],[701,8924,8926,8929],{"className":8925},[2467],[701,8927,2355],{"className":8928},[2467],[701,8930,8932],{"className":8931},[5771],[701,8933,8935],{"className":8934},[5705],[701,8936,8938],{"className":8937},[5710],[701,8939,8941],{"className":8940,"style":7261},[5714],[701,8942,8943,8946],{"style":7264},[701,8944],{"className":8945,"style":5788},[5722],[701,8947,8949],{"className":8948},[5792,5793,5794,5795],[701,8950,8952,8955,8958],{"className":8951},[2467,5795],[701,8953,4694],{"className":8954},[2467,2536,5795],[701,8956,1049],{"className":8957},[5749,5795],[701,8959,932],{"className":8960},[2467,5795],[701,8962],{"className":8963,"style":5745},[4680],[701,8965,6075],{"className":8966},[5749],[701,8968],{"className":8969,"style":5745},[4680],[701,8971,8973,8976],{"className":8972},[2458],[701,8974],{"className":8975,"style":5204},[2462],[701,8977,8799],{"className":8978},[2467],[600,8980,8981,8982,9010,9011,9014,9015,9066,9067,9185,9186,9343,9344],{},"L'inégalité est démontrée pour la hauteur ",[701,8983,8985,8998],{"className":8984},[2415],[701,8986,8988],{"className":8987},[2419],[2421,8989,8990],{"xmlns":2423},[2425,8991,8992,8996],{},[2428,8993,8994],{},[2431,8995,4694],{},[2446,8997,4694],{"encoding":2448},[701,8999,9001],{"className":9000,"ariaHidden":2454},[2453],[701,9002,9004,9007],{"className":9003},[2458],[701,9005],{"className":9006,"style":2970},[2462],[701,9008,4694],{"className":9009},[2467,2536],". ",[604,9012,9013],{},"Par récurrence",", elle est\nvraie pour tout ",[701,9016,9018,9036],{"className":9017},[2415],[701,9019,9021],{"className":9020},[2419],[2421,9022,9023],{"xmlns":2423},[2425,9024,9025,9033],{},[2428,9026,9027,9029,9031],{},[2431,9028,4694],{},[2436,9030,7926],{},[2440,9032,749],{},[2446,9034,9035],{"encoding":2448},"h \\ge 0",[701,9037,9039,9057],{"className":9038,"ariaHidden":2454},[2453],[701,9040,9042,9045,9048,9051,9054],{"className":9041},[2458],[701,9043],{"className":9044,"style":7087},[2462],[701,9046,4694],{"className":9047},[2467,2536],[701,9049],{"className":9050,"style":5190},[4680],[701,9052,7926],{"className":9053},[5194],[701,9055],{"className":9056,"style":5190},[4680],[701,9058,9060,9063],{"className":9059},[2458],[701,9061],{"className":9062,"style":5204},[2462],[701,9064,749],{"className":9065},[2467],". Par passage au logarithme dans la majoration\n",[701,9068,9070,9102],{"className":9069},[2415],[701,9071,9073],{"className":9072},[2419],[2421,9074,9075],{"xmlns":2423},[2425,9076,9077,9099],{},[2428,9078,9079,9081,9083,9095,9097],{},[2431,9080,2512],{},[2436,9082,6956],{},[7158,9084,9085,9087],{},[2440,9086,2355],{},[2428,9088,9089,9091,9093],{},[2431,9090,4694],{},[2436,9092,1049],{},[2440,9094,932],{},[2436,9096,6075],{},[2440,9098,932],{},[2446,9100,9101],{"encoding":2448},"n \\le 2^{h+1} - 1",[701,9103,9105,9123,9176],{"className":9104,"ariaHidden":2454},[2453],[701,9106,9108,9111,9114,9117,9120],{"className":9107},[2458],[701,9109],{"className":9110,"style":7223},[2462],[701,9112,2512],{"className":9113},[2467,2536],[701,9115],{"className":9116,"style":5190},[4680],[701,9118,6956],{"className":9119},[5194],[701,9121],{"className":9122,"style":5190},[4680],[701,9124,9126,9129,9167,9170,9173],{"className":9125},[2458],[701,9127],{"className":9128,"style":7242},[2462],[701,9130,9132,9135],{"className":9131},[2467],[701,9133,2355],{"className":9134},[2467],[701,9136,9138],{"className":9137},[5771],[701,9139,9141],{"className":9140},[5705],[701,9142,9144],{"className":9143},[5710],[701,9145,9147],{"className":9146,"style":7261},[5714],[701,9148,9149,9152],{"style":7264},[701,9150],{"className":9151,"style":5788},[5722],[701,9153,9155],{"className":9154},[5792,5793,5794,5795],[701,9156,9158,9161,9164],{"className":9157},[2467,5795],[701,9159,4694],{"className":9160},[2467,2536,5795],[701,9162,1049],{"className":9163},[5749,5795],[701,9165,932],{"className":9166},[2467,5795],[701,9168],{"className":9169,"style":5745},[4680],[701,9171,6075],{"className":9172},[5749],[701,9174],{"className":9175,"style":5745},[4680],[701,9177,9179,9182],{"className":9178},[2458],[701,9180],{"className":9181,"style":5204},[2462],[701,9183,932],{"className":9184},[2467],", on obtient ",[701,9187,9189,9229],{"className":9188},[2415],[701,9190,9192],{"className":9191},[2419],[2421,9193,9194],{"xmlns":2423},[2425,9195,9196,9226],{},[2428,9197,9198,9200,9202,9212,9214,9216,9218,9220,9222,9224],{},[2431,9199,4694],{},[2436,9201,7926],{},[5591,9203,9204,9210],{},[2428,9205,9206,9208],{},[2431,9207,6935],{},[2436,9209,6107],{},[2440,9211,2355],{},[2436,9213,1488],{"stretchy":2438},[2431,9215,2512],{},[2436,9217,1049],{},[2440,9219,932],{},[2436,9221,2444],{"stretchy":2438},[2436,9223,6075],{},[2440,9225,932],{},[2446,9227,9228],{"encoding":2448},"h \\ge \\log_2(n+1) - 1",[701,9230,9232,9250,9313,9334],{"className":9231,"ariaHidden":2454},[2453],[701,9233,9235,9238,9241,9244,9247],{"className":9234},[2458],[701,9236],{"className":9237,"style":7087},[2462],[701,9239,4694],{"className":9240},[2467,2536],[701,9242],{"className":9243,"style":5190},[4680],[701,9245,7926],{"className":9246},[5194],[701,9248],{"className":9249,"style":5190},[4680],[701,9251,9253,9256,9298,9301,9304,9307,9310],{"className":9252},[2458],[701,9254],{"className":9255,"style":2463},[2462],[701,9257,9259,9264],{"className":9258},[6279],[701,9260,6985,9262],{"className":9261},[6279],[701,9263,5597],{"style":6988},[701,9265,9267],{"className":9266},[5771],[701,9268,9270,9290],{"className":9269},[5705,5706],[701,9271,9273,9287],{"className":9272},[5710],[701,9274,9276],{"className":9275,"style":7001},[5714],[701,9277,9278,9281],{"style":7004},[701,9279],{"className":9280,"style":5788},[5722],[701,9282,9284],{"className":9283},[5792,5793,5794,5795],[701,9285,2355],{"className":9286},[2467,5795],[701,9288,5804],{"className":9289},[5803],[701,9291,9293],{"className":9292},[5710],[701,9294,9296],{"className":9295,"style":7023},[5714],[701,9297],{},[701,9299,1488],{"className":9300},[2473],[701,9302,2512],{"className":9303},[2467,2536],[701,9305],{"className":9306,"style":5745},[4680],[701,9308,1049],{"className":9309},[5749],[701,9311],{"className":9312,"style":5745},[4680],[701,9314,9316,9319,9322,9325,9328,9331],{"className":9315},[2458],[701,9317],{"className":9318,"style":2463},[2462],[701,9320,932],{"className":9321},[2467],[701,9323,2444],{"className":9324},[2480],[701,9326],{"className":9327,"style":5745},[4680],[701,9329,6075],{"className":9330},[5749],[701,9332],{"className":9333,"style":5745},[4680],[701,9335,9337,9340],{"className":9336},[2458],[701,9338],{"className":9339,"style":5204},[2462],[701,9341,932],{"className":9342},[2467],", ce qui ferme\nl'équivalence annoncée. ",[701,9345,9347,9362],{"className":9346},[2415],[701,9348,9350],{"className":9349},[2419],[2421,9351,9352],{"xmlns":2423},[2425,9353,9354,9359],{},[2428,9355,9356],{},[2431,9357,9358],{"mathvariant":5503},"■",[2446,9360,9361],{"encoding":2448},"\\blacksquare",[701,9363,9365],{"className":9364,"ariaHidden":2454},[2453],[701,9366,9368,9372],{"className":9367},[2458],[701,9369],{"className":9370,"style":9371},[2462],"height:0.675em;",[701,9373,9358],{"className":9374},[2467,9375],"amsrm",[5476,9377,9379],{"id":9378},"conséquences","Conséquences",[775,9381,9382,9536,9898],{},[778,9383,9384,9385,9388,9389,9462,9463,1185],{},"Un arbre ",[604,9386,9387],{},"filiforme"," (chaque nœud n'a qu'un seul enfant) atteint la borne\nbasse : ",[701,9390,9392,9414],{"className":9391},[2415],[701,9393,9395],{"className":9394},[2419],[2421,9396,9397],{"xmlns":2423},[2425,9398,9399,9411],{},[2428,9400,9401,9403,9405,9407,9409],{},[2431,9402,2512],{},[2436,9404,746],{},[2431,9406,4694],{},[2436,9408,1049],{},[2440,9410,932],{},[2446,9412,9413],{"encoding":2448},"n = h + 1",[701,9415,9417,9435,9453],{"className":9416,"ariaHidden":2454},[2453],[701,9418,9420,9423,9426,9429,9432],{"className":9419},[2458],[701,9421],{"className":9422,"style":2566},[2462],[701,9424,2512],{"className":9425},[2467,2536],[701,9427],{"className":9428,"style":5190},[4680],[701,9430,746],{"className":9431},[5194],[701,9433],{"className":9434,"style":5190},[4680],[701,9436,9438,9441,9444,9447,9450],{"className":9437},[2458],[701,9439],{"className":9440,"style":7186},[2462],[701,9442,4694],{"className":9443},[2467,2536],[701,9445],{"className":9446,"style":5745},[4680],[701,9448,1049],{"className":9449},[5749],[701,9451],{"className":9452,"style":5745},[4680],[701,9454,9456,9459],{"className":9455},[2458],[701,9457],{"className":9458,"style":5204},[2462],[701,9460,932],{"className":9461},[2467],", donc ",[701,9464,9466,9488],{"className":9465},[2415],[701,9467,9469],{"className":9468},[2419],[2421,9470,9471],{"xmlns":2423},[2425,9472,9473,9485],{},[2428,9474,9475,9477,9479,9481,9483],{},[2431,9476,4694],{},[2436,9478,746],{},[2431,9480,2512],{},[2436,9482,6075],{},[2440,9484,932],{},[2446,9486,9487],{"encoding":2448},"h = n - 1",[701,9489,9491,9509,9527],{"className":9490,"ariaHidden":2454},[2453],[701,9492,9494,9497,9500,9503,9506],{"className":9493},[2458],[701,9495],{"className":9496,"style":2970},[2462],[701,9498,4694],{"className":9499},[2467,2536],[701,9501],{"className":9502,"style":5190},[4680],[701,9504,746],{"className":9505},[5194],[701,9507],{"className":9508,"style":5190},[4680],[701,9510,9512,9515,9518,9521,9524],{"className":9511},[2458],[701,9513],{"className":9514,"style":7106},[2462],[701,9516,2512],{"className":9517},[2467,2536],[701,9519],{"className":9520,"style":5745},[4680],[701,9522,6075],{"className":9523},[5749],[701,9525],{"className":9526,"style":5745},[4680],[701,9528,9530,9533],{"className":9529},[2458],[701,9531],{"className":9532,"style":5204},[2462],[701,9534,932],{"className":9535},[2467],[778,9537,9384,9538,9541,9542,9462,9660,9817,9818,1185],{},[604,9539,9540],{},"parfaitement équilibré et complet"," atteint la borne haute :\n",[701,9543,9545,9577],{"className":9544},[2415],[701,9546,9548],{"className":9547},[2419],[2421,9549,9550],{"xmlns":2423},[2425,9551,9552,9574],{},[2428,9553,9554,9556,9558,9570,9572],{},[2431,9555,2512],{},[2436,9557,746],{},[7158,9559,9560,9562],{},[2440,9561,2355],{},[2428,9563,9564,9566,9568],{},[2431,9565,4694],{},[2436,9567,1049],{},[2440,9569,932],{},[2436,9571,6075],{},[2440,9573,932],{},[2446,9575,9576],{"encoding":2448},"n = 2^{h+1} - 1",[701,9578,9580,9598,9651],{"className":9579,"ariaHidden":2454},[2453],[701,9581,9583,9586,9589,9592,9595],{"className":9582},[2458],[701,9584],{"className":9585,"style":2566},[2462],[701,9587,2512],{"className":9588},[2467,2536],[701,9590],{"className":9591,"style":5190},[4680],[701,9593,746],{"className":9594},[5194],[701,9596],{"className":9597,"style":5190},[4680],[701,9599,9601,9604,9642,9645,9648],{"className":9600},[2458],[701,9602],{"className":9603,"style":7242},[2462],[701,9605,9607,9610],{"className":9606},[2467],[701,9608,2355],{"className":9609},[2467],[701,9611,9613],{"className":9612},[5771],[701,9614,9616],{"className":9615},[5705],[701,9617,9619],{"className":9618},[5710],[701,9620,9622],{"className":9621,"style":7261},[5714],[701,9623,9624,9627],{"style":7264},[701,9625],{"className":9626,"style":5788},[5722],[701,9628,9630],{"className":9629},[5792,5793,5794,5795],[701,9631,9633,9636,9639],{"className":9632},[2467,5795],[701,9634,4694],{"className":9635},[2467,2536,5795],[701,9637,1049],{"className":9638},[5749,5795],[701,9640,932],{"className":9641},[2467,5795],[701,9643],{"className":9644,"style":5745},[4680],[701,9646,6075],{"className":9647},[5749],[701,9649],{"className":9650,"style":5745},[4680],[701,9652,9654,9657],{"className":9653},[2458],[701,9655],{"className":9656,"style":5204},[2462],[701,9658,932],{"className":9659},[2467],[701,9661,9663,9703],{"className":9662},[2415],[701,9664,9666],{"className":9665},[2419],[2421,9667,9668],{"xmlns":2423},[2425,9669,9670,9700],{},[2428,9671,9672,9674,9676,9686,9688,9690,9692,9694,9696,9698],{},[2431,9673,4694],{},[2436,9675,746],{},[5591,9677,9678,9684],{},[2428,9679,9680,9682],{},[2431,9681,6935],{},[2436,9683,6107],{},[2440,9685,2355],{},[2436,9687,1488],{"stretchy":2438},[2431,9689,2512],{},[2436,9691,1049],{},[2440,9693,932],{},[2436,9695,2444],{"stretchy":2438},[2436,9697,6075],{},[2440,9699,932],{},[2446,9701,9702],{"encoding":2448},"h = \\log_2(n+1) - 1",[701,9704,9706,9724,9787,9808],{"className":9705,"ariaHidden":2454},[2453],[701,9707,9709,9712,9715,9718,9721],{"className":9708},[2458],[701,9710],{"className":9711,"style":2970},[2462],[701,9713,4694],{"className":9714},[2467,2536],[701,9716],{"className":9717,"style":5190},[4680],[701,9719,746],{"className":9720},[5194],[701,9722],{"className":9723,"style":5190},[4680],[701,9725,9727,9730,9772,9775,9778,9781,9784],{"className":9726},[2458],[701,9728],{"className":9729,"style":2463},[2462],[701,9731,9733,9738],{"className":9732},[6279],[701,9734,6985,9736],{"className":9735},[6279],[701,9737,5597],{"style":6988},[701,9739,9741],{"className":9740},[5771],[701,9742,9744,9764],{"className":9743},[5705,5706],[701,9745,9747,9761],{"className":9746},[5710],[701,9748,9750],{"className":9749,"style":7001},[5714],[701,9751,9752,9755],{"style":7004},[701,9753],{"className":9754,"style":5788},[5722],[701,9756,9758],{"className":9757},[5792,5793,5794,5795],[701,9759,2355],{"className":9760},[2467,5795],[701,9762,5804],{"className":9763},[5803],[701,9765,9767],{"className":9766},[5710],[701,9768,9770],{"className":9769,"style":7023},[5714],[701,9771],{},[701,9773,1488],{"className":9774},[2473],[701,9776,2512],{"className":9777},[2467,2536],[701,9779],{"className":9780,"style":5745},[4680],[701,9782,1049],{"className":9783},[5749],[701,9785],{"className":9786,"style":5745},[4680],[701,9788,9790,9793,9796,9799,9802,9805],{"className":9789},[2458],[701,9791],{"className":9792,"style":2463},[2462],[701,9794,932],{"className":9795},[2467],[701,9797,2444],{"className":9798},[2480],[701,9800],{"className":9801,"style":5745},[4680],[701,9803,6075],{"className":9804},[5749],[701,9806],{"className":9807,"style":5745},[4680],[701,9809,9811,9814],{"className":9810},[2458],[701,9812],{"className":9813,"style":5204},[2462],[701,9815,932],{"className":9816},[2467],", soit ",[701,9819,9821,9850],{"className":9820},[2415],[701,9822,9824],{"className":9823},[2419],[2421,9825,9826],{"xmlns":2423},[2425,9827,9828,9847],{},[2428,9829,9830,9832,9835,9837,9839,9841,9843,9845],{},[2431,9831,4694],{},[2436,9833,9834],{},"∈",[2431,9836,2434],{"mathvariant":2433},[2436,9838,1488],{"stretchy":2438},[2431,9840,6935],{},[2436,9842,6107],{},[2431,9844,2512],{},[2436,9846,2444],{"stretchy":2438},[2446,9848,9849],{"encoding":2448},"h \\in \\mathcal{O}(\\log n)",[701,9851,9853,9872],{"className":9852,"ariaHidden":2454},[2453],[701,9854,9856,9860,9863,9866,9869],{"className":9855},[2458],[701,9857],{"className":9858,"style":9859},[2462],"height:0.7335em;vertical-align:-0.0391em;",[701,9861,4694],{"className":9862},[2467,2536],[701,9864],{"className":9865,"style":5190},[4680],[701,9867,9834],{"className":9868},[5194],[701,9870],{"className":9871,"style":5190},[4680],[701,9873,9875,9878,9881,9884,9889,9892,9895],{"className":9874},[2458],[701,9876],{"className":9877,"style":2463},[2462],[701,9879,2434],{"className":9880,"style":2469},[2467,2468],[701,9882,1488],{"className":9883},[2473],[701,9885,6985,9887],{"className":9886},[6279],[701,9888,5597],{"style":6988},[701,9890],{"className":9891,"style":6342},[4680],[701,9893,2512],{"className":9894},[2467,2536],[701,9896,2444],{"className":9897},[2480],[778,9899,9900,9901,9904,9905,9961,9962,1185],{},"C'est pour cela que les structures arborescentes ",[604,9902,9903],{},"équilibrées"," sont\nrecherchées : leurs opérations sont en ",[701,9906,9908,9932],{"className":9907},[2415],[701,9909,9911],{"className":9910},[2419],[2421,9912,9913],{"xmlns":2423},[2425,9914,9915,9929],{},[2428,9916,9917,9919,9921,9923,9925,9927],{},[2431,9918,2434],{"mathvariant":2433},[2436,9920,1488],{"stretchy":2438},[2431,9922,6935],{},[2436,9924,6107],{},[2431,9926,2512],{},[2436,9928,2444],{"stretchy":2438},[2446,9930,9931],{"encoding":2448},"\\mathcal{O}(\\log n)",[701,9933,9935],{"className":9934,"ariaHidden":2454},[2453],[701,9936,9938,9941,9944,9947,9952,9955,9958],{"className":9937},[2458],[701,9939],{"className":9940,"style":2463},[2462],[701,9942,2434],{"className":9943,"style":2469},[2467,2468],[701,9945,1488],{"className":9946},[2473],[701,9948,6985,9950],{"className":9949},[6279],[701,9951,5597],{"style":6988},[701,9953],{"className":9954,"style":6342},[4680],[701,9956,2512],{"className":9957},[2467,2536],[701,9959,2444],{"className":9960},[2480]," au lieu de\n",[701,9963,9965,9984],{"className":9964},[2415],[701,9966,9968],{"className":9967},[2419],[2421,9969,9970],{"xmlns":2423},[2425,9971,9972,9982],{},[2428,9973,9974,9976,9978,9980],{},[2431,9975,2434],{"mathvariant":2433},[2436,9977,1488],{"stretchy":2438},[2431,9979,2512],{},[2436,9981,2444],{"stretchy":2438},[2446,9983,2517],{"encoding":2448},[701,9985,9987],{"className":9986,"ariaHidden":2454},[2453],[701,9988,9990,9993,9996,9999,10002],{"className":9989},[2458],[701,9991],{"className":9992,"style":2463},[2462],[701,9994,2434],{"className":9995,"style":2469},[2467,2468],[701,9997,1488],{"className":9998},[2473],[701,10000,2512],{"className":10001},[2467,2536],[701,10003,2444],{"className":10004},[2480],[930,10006,10008,10065],{"correct":932,"slug":10007},"arbres-binaires-c2",[935,10009,10010],{"v-slot:question":697},[600,10011,10012,10013,10064],{},"Un arbre binaire de hauteur ",[701,10014,10016,10034],{"className":10015},[2415],[701,10017,10019],{"className":10018},[2419],[2421,10020,10021],{"xmlns":2423},[2425,10022,10023,10031],{},[2428,10024,10025,10027,10029],{},[2431,10026,4694],{},[2436,10028,746],{},[2440,10030,2364],{},[2446,10032,10033],{"encoding":2448},"h = 3",[701,10035,10037,10055],{"className":10036,"ariaHidden":2454},[2453],[701,10038,10040,10043,10046,10049,10052],{"className":10039},[2458],[701,10041],{"className":10042,"style":2970},[2462],[701,10044,4694],{"className":10045},[2467,2536],[701,10047],{"className":10048,"style":5190},[4680],[701,10050,746],{"className":10051},[5194],[701,10053],{"className":10054,"style":5190},[4680],[701,10056,10058,10061],{"className":10057},[2458],[701,10059],{"className":10060,"style":5204},[2462],[701,10062,2364],{"className":10063},[2467]," contient au plus combien de nœuds ?",[935,10066,10067],{"v-slot:choices":697},[775,10068,10069,10072,10075],{},[778,10070,10071],{},"7",[778,10073,10074],{},"15",[778,10076,10077],{},"8",[595,10079,1790],{"id":1789},[600,10081,10082,10083,10138],{},"Les arbres binaires de recherche (ABR), les tas binaires et les arbres\néquilibrés (AVL, rouge-noir) exploitent cette propriété d'encadrement pour\ngarantir des opérations en ",[701,10084,10086,10109],{"className":10085},[2415],[701,10087,10089],{"className":10088},[2419],[2421,10090,10091],{"xmlns":2423},[2425,10092,10093,10107],{},[2428,10094,10095,10097,10099,10101,10103,10105],{},[2431,10096,2434],{"mathvariant":2433},[2436,10098,1488],{"stretchy":2438},[2431,10100,6935],{},[2436,10102,6107],{},[2431,10104,2512],{},[2436,10106,2444],{"stretchy":2438},[2446,10108,9931],{"encoding":2448},[701,10110,10112],{"className":10111,"ariaHidden":2454},[2453],[701,10113,10115,10118,10121,10124,10129,10132,10135],{"className":10114},[2458],[701,10116],{"className":10117,"style":2463},[2462],[701,10119,2434],{"className":10120,"style":2469},[2467,2468],[701,10122,1488],{"className":10123},[2473],[701,10125,6985,10127],{"className":10126},[6279],[701,10128,5597],{"style":6988},[701,10130],{"className":10131,"style":6342},[4680],[701,10133,2512],{"className":10134},[2467,2536],[701,10136,2444],{"className":10137},[2480],". Vous reviendrez sur certains\nd'entre eux au chapitre TE.",[674,10140],{"code":4940},[1912,10142,10143],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":697,"searchDepth":719,"depth":719,"links":10145},[10146,10147,10148,10149,10153,10157],{"id":1949,"depth":719,"text":1950},{"id":4979,"depth":719,"text":4980},{"id":5262,"depth":719,"text":5263},{"id":5473,"depth":719,"text":5474,"children":10150},[10151,10152],{"id":5478,"depth":726,"text":5061},{"id":6017,"depth":726,"text":5099},{"id":6732,"depth":719,"text":6733,"children":10154},[10155,10156],{"id":7303,"depth":726,"text":7304},{"id":9378,"depth":726,"text":9379},{"id":1789,"depth":719,"text":1790},"Structures hiérarchiques — vocabulaire, mesures, encadrement de la hauteur, classe Noeud en Python.",{},[10161,10163],{"slug":5455,"kind":1930,"question":5460,"choices":10162,"correct":2355,"multi":1933,"explanation":697},[932,2355,2364],{"slug":10007,"kind":1930,"question":10164,"choices":10165,"correct":932,"multi":1933,"explanation":697},"Un arbre binaire de hauteur h=3h = 3h=3 contient au plus combien de nœuds ?",[10071,10074,10077],{"title":469,"description":10158},"lfLNnwL1886RhYf98Gry79MIyqtEA4zlmRsjXulC3iw",{"id":10169,"title":473,"bo":10170,"body":10172,"description":13114,"eval":1925,"extension":1926,"labo":1925,"meta":13115,"navigation":729,"path":474,"quizzes":13116,"readingTime":704,"seo":13122,"stem":475,"tp":1925,"__hash__":13123},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes.md",[10171],"TA02",{"type":592,"value":10173,"toc":13105},[10174,10176,10186,10201,10207,10225,10227,10829,10841,10965,10969,11140,11447,11568,11791,11796,11974,11978,12014,12171,12253,12443,12624,12645,12649,12652,12856,12861,13013,13017,13024,13090,13095,13097,13100,13102],[595,10175,1950],{"id":1949},[600,10177,1357,10178,10181,10182,10185],{},[604,10179,10180],{},"graphe"," modélise des ",[604,10183,10184],{},"relations"," entre des entités : un réseau routier\n(villes et routes), un réseau social (utilisateurs et amitiés), une page web\n(URL et liens), un réseau électrique (composants et fils). Là où un arbre\nimpose une hiérarchie stricte avec une racine unique, le graphe autorise des\ncycles, des relations multiples, des composantes disjointes.",[600,10187,10188,10189,10192,10193,10196,10197,10200],{},"L'exemple le plus parlant reste le ",[604,10190,10191],{},"plan du métro parisien"," : les ",[604,10194,10195],{},"stations","\nsont les sommets, les ",[604,10198,10199],{},"liaisons directes"," entre stations voisines sont les\narêtes. On peut tourner en rond (cycle), bifurquer, traverser des composantes\nséparées (les terminus d'une ligne disjointe).",[600,10202,10203,10204,10206],{},"L'item ",[674,10205],{"code":10171}," demande deux choses :",[3021,10208,10209,10216],{},[778,10210,10211,10212,10215],{},"savoir ",[604,10213,10214],{},"modéliser"," une situation par un graphe ;",[778,10217,10211,10218,10221,10222,1185],{},[604,10219,10220],{},"implémenter"," un graphe de deux manières (matrice d'adjacence, liste\nde successeurs) et ",[604,10223,10224],{},"passer de l'une à l'autre",[595,10226,4980],{"id":4979},[1260,10228,10229,10237],{},[1263,10230,10231],{},[1266,10232,10233,10235],{},[1269,10234,4989],{},[1269,10236,4992],{},[1276,10238,10239,10250,10316,10381,10391,10401,10519,10636,10754,10792],{},[1266,10240,10241,10247],{},[1281,10242,10243,10246],{},[604,10244,10245],{},"Sommet"," (ou nœud)",[1281,10248,10249],{},"Élément du graphe.",[1266,10251,10252,10256],{},[1281,10253,10254],{},[604,10255,5051],{},[1281,10257,10258,10259,10262,10263,1185],{},"Lien ",[604,10260,10261],{},"non orienté"," entre deux sommets, noté ",[701,10264,10266,10289],{"className":10265},[2415],[701,10267,10269],{"className":10268},[2419],[2421,10270,10271],{"xmlns":2423},[2425,10272,10273,10286],{},[2428,10274,10275,10277,10279,10281,10284],{},[2436,10276,5529],{"stretchy":2438},[2431,10278,6041],{},[2436,10280,6138],{"separator":2454},[2431,10282,10283],{},"v",[2436,10285,1848],{"stretchy":2438},[2446,10287,10288],{"encoding":2448},"\\{u, v\\}",[701,10290,10292],{"className":10291,"ariaHidden":2454},[2453],[701,10293,10295,10298,10301,10304,10307,10310,10313],{"className":10294},[2458],[701,10296],{"className":10297,"style":2463},[2462],[701,10299,5529],{"className":10300},[2473],[701,10302,6041],{"className":10303},[2467,2536],[701,10305,6138],{"className":10306},[6338],[701,10308],{"className":10309,"style":6342},[4680],[701,10311,10283],{"className":10312,"style":5799},[2467,2536],[701,10314,1848],{"className":10315},[2480],[1266,10317,10318,10323],{},[1281,10319,10320],{},[604,10321,10322],{},"Arc",[1281,10324,10258,10325,10328,10329,1185],{},[604,10326,10327],{},"orienté"," d'un sommet vers un autre, noté ",[701,10330,10332,10354],{"className":10331},[2415],[701,10333,10335],{"className":10334},[2419],[2421,10336,10337],{"xmlns":2423},[2425,10338,10339,10351],{},[2428,10340,10341,10343,10345,10347,10349],{},[2436,10342,1488],{"stretchy":2438},[2431,10344,6041],{},[2436,10346,6138],{"separator":2454},[2431,10348,10283],{},[2436,10350,2444],{"stretchy":2438},[2446,10352,10353],{"encoding":2448},"(u, v)",[701,10355,10357],{"className":10356,"ariaHidden":2454},[2453],[701,10358,10360,10363,10366,10369,10372,10375,10378],{"className":10359},[2458],[701,10361],{"className":10362,"style":2463},[2462],[701,10364,1488],{"className":10365},[2473],[701,10367,6041],{"className":10368},[2467,2536],[701,10370,6138],{"className":10371},[6338],[701,10373],{"className":10374,"style":6342},[4680],[701,10376,10283],{"className":10377,"style":5799},[2467,2536],[701,10379,2444],{"className":10380},[2480],[1266,10382,10383,10388],{},[1281,10384,10385],{},[604,10386,10387],{},"Graphe non orienté",[1281,10389,10390],{},"Composé d'arêtes — la relation est symétrique.",[1266,10392,10393,10398],{},[1281,10394,10395],{},[604,10396,10397],{},"Graphe orienté",[1281,10399,10400],{},"Composé d'arcs — la relation a un sens.",[1266,10402,10403,10436],{},[1281,10404,10405,3042,10408],{},[604,10406,10407],{},"Successeur",[701,10409,10411,10424],{"className":10410},[2415],[701,10412,10414],{"className":10413},[2419],[2421,10415,10416],{"xmlns":2423},[2425,10417,10418,10422],{},[2428,10419,10420],{},[2431,10421,6041],{},[2446,10423,6041],{"encoding":2448},[701,10425,10427],{"className":10426,"ariaHidden":2454},[2453],[701,10428,10430,10433],{"className":10429},[2458],[701,10431],{"className":10432,"style":2566},[2462],[701,10434,6041],{"className":10435},[2467,2536],[1281,10437,10438,10439,10467,10468,1185],{},"Sommet ",[701,10440,10442,10455],{"className":10441},[2415],[701,10443,10445],{"className":10444},[2419],[2421,10446,10447],{"xmlns":2423},[2425,10448,10449,10453],{},[2428,10450,10451],{},[2431,10452,10283],{},[2446,10454,10283],{"encoding":2448},[701,10456,10458],{"className":10457,"ariaHidden":2454},[2453],[701,10459,10461,10464],{"className":10460},[2458],[701,10462],{"className":10463,"style":2566},[2462],[701,10465,10283],{"className":10466,"style":5799},[2467,2536]," tel qu'il existe un arc ",[701,10469,10471,10492],{"className":10470},[2415],[701,10472,10474],{"className":10473},[2419],[2421,10475,10476],{"xmlns":2423},[2425,10477,10478,10490],{},[2428,10479,10480,10482,10484,10486,10488],{},[2436,10481,1488],{"stretchy":2438},[2431,10483,6041],{},[2436,10485,6138],{"separator":2454},[2431,10487,10283],{},[2436,10489,2444],{"stretchy":2438},[2446,10491,10353],{"encoding":2448},[701,10493,10495],{"className":10494,"ariaHidden":2454},[2453],[701,10496,10498,10501,10504,10507,10510,10513,10516],{"className":10497},[2458],[701,10499],{"className":10500,"style":2463},[2462],[701,10502,1488],{"className":10503},[2473],[701,10505,6041],{"className":10506},[2467,2536],[701,10508,6138],{"className":10509},[6338],[701,10511],{"className":10512,"style":6342},[4680],[701,10514,10283],{"className":10515,"style":5799},[2467,2536],[701,10517,2444],{"className":10518},[2480],[1266,10520,10521,10554],{},[1281,10522,10523,3042,10526],{},[604,10524,10525],{},"Prédécesseur",[701,10527,10529,10542],{"className":10528},[2415],[701,10530,10532],{"className":10531},[2419],[2421,10533,10534],{"xmlns":2423},[2425,10535,10536,10540],{},[2428,10537,10538],{},[2431,10539,6041],{},[2446,10541,6041],{"encoding":2448},[701,10543,10545],{"className":10544,"ariaHidden":2454},[2453],[701,10546,10548,10551],{"className":10547},[2458],[701,10549],{"className":10550,"style":2566},[2462],[701,10552,6041],{"className":10553},[2467,2536],[1281,10555,10438,10556,10467,10584,1185],{},[701,10557,10559,10572],{"className":10558},[2415],[701,10560,10562],{"className":10561},[2419],[2421,10563,10564],{"xmlns":2423},[2425,10565,10566,10570],{},[2428,10567,10568],{},[2431,10569,10283],{},[2446,10571,10283],{"encoding":2448},[701,10573,10575],{"className":10574,"ariaHidden":2454},[2453],[701,10576,10578,10581],{"className":10577},[2458],[701,10579],{"className":10580,"style":2566},[2462],[701,10582,10283],{"className":10583,"style":5799},[2467,2536],[701,10585,10587,10609],{"className":10586},[2415],[701,10588,10590],{"className":10589},[2419],[2421,10591,10592],{"xmlns":2423},[2425,10593,10594,10606],{},[2428,10595,10596,10598,10600,10602,10604],{},[2436,10597,1488],{"stretchy":2438},[2431,10599,10283],{},[2436,10601,6138],{"separator":2454},[2431,10603,6041],{},[2436,10605,2444],{"stretchy":2438},[2446,10607,10608],{"encoding":2448},"(v, u)",[701,10610,10612],{"className":10611,"ariaHidden":2454},[2453],[701,10613,10615,10618,10621,10624,10627,10630,10633],{"className":10614},[2458],[701,10616],{"className":10617,"style":2463},[2462],[701,10619,1488],{"className":10620},[2473],[701,10622,10283],{"className":10623,"style":5799},[2467,2536],[701,10625,6138],{"className":10626},[6338],[701,10628],{"className":10629,"style":6342},[4680],[701,10631,6041],{"className":10632},[2467,2536],[701,10634,2444],{"className":10635},[2480],[1266,10637,10638,10672],{},[1281,10639,10640,3042,10643,10671],{},[604,10641,10642],{},"Voisin",[701,10644,10646,10659],{"className":10645},[2415],[701,10647,10649],{"className":10648},[2419],[2421,10650,10651],{"xmlns":2423},[2425,10652,10653,10657],{},[2428,10654,10655],{},[2431,10656,6041],{},[2446,10658,6041],{"encoding":2448},[701,10660,10662],{"className":10661,"ariaHidden":2454},[2453],[701,10663,10665,10668],{"className":10664},[2458],[701,10666],{"className":10667,"style":2566},[2462],[701,10669,6041],{"className":10670},[2467,2536]," (non orienté)",[1281,10673,10438,10674,10702,10703,1185],{},[701,10675,10677,10690],{"className":10676},[2415],[701,10678,10680],{"className":10679},[2419],[2421,10681,10682],{"xmlns":2423},[2425,10683,10684,10688],{},[2428,10685,10686],{},[2431,10687,10283],{},[2446,10689,10283],{"encoding":2448},[701,10691,10693],{"className":10692,"ariaHidden":2454},[2453],[701,10694,10696,10699],{"className":10695},[2458],[701,10697],{"className":10698,"style":2566},[2462],[701,10700,10283],{"className":10701,"style":5799},[2467,2536]," tel qu'il existe une arête ",[701,10704,10706,10727],{"className":10705},[2415],[701,10707,10709],{"className":10708},[2419],[2421,10710,10711],{"xmlns":2423},[2425,10712,10713,10725],{},[2428,10714,10715,10717,10719,10721,10723],{},[2436,10716,5529],{"stretchy":2438},[2431,10718,6041],{},[2436,10720,6138],{"separator":2454},[2431,10722,10283],{},[2436,10724,1848],{"stretchy":2438},[2446,10726,10288],{"encoding":2448},[701,10728,10730],{"className":10729,"ariaHidden":2454},[2453],[701,10731,10733,10736,10739,10742,10745,10748,10751],{"className":10732},[2458],[701,10734],{"className":10735,"style":2463},[2462],[701,10737,5529],{"className":10738},[2473],[701,10740,6041],{"className":10741},[2467,2536],[701,10743,6138],{"className":10744},[6338],[701,10746],{"className":10747,"style":6342},[4680],[701,10749,10283],{"className":10750,"style":5799},[2467,2536],[701,10752,1848],{"className":10753},[2480],[1266,10755,10756,10761],{},[1281,10757,10758],{},[604,10759,10760],{},"Ordre",[1281,10762,10763,10764,1185],{},"Nombre de sommets, noté ",[701,10765,10767,10780],{"className":10766},[2415],[701,10768,10770],{"className":10769},[2419],[2421,10771,10772],{"xmlns":2423},[2425,10773,10774,10778],{},[2428,10775,10776],{},[2431,10777,2512],{},[2446,10779,2512],{"encoding":2448},[701,10781,10783],{"className":10782,"ariaHidden":2454},[2453],[701,10784,10786,10789],{"className":10785},[2458],[701,10787],{"className":10788,"style":2566},[2462],[701,10790,2512],{"className":10791},[2467,2536],[1266,10793,10794,10798],{},[1281,10795,10796],{},[604,10797,5061],{},[1281,10799,10800,10801,1185],{},"Nombre d'arêtes ou d'arcs, noté ",[701,10802,10804,10817],{"className":10803},[2415],[701,10805,10807],{"className":10806},[2419],[2421,10808,10809],{"xmlns":2423},[2425,10810,10811,10815],{},[2428,10812,10813],{},[2431,10814,4685],{},[2446,10816,4685],{"encoding":2448},[701,10818,10820],{"className":10819,"ariaHidden":2454},[2453],[701,10821,10823,10826],{"className":10822},[2458],[701,10824],{"className":10825,"style":2566},[2462],[701,10827,4685],{"className":10828},[2467,2536],[617,10830,10831],{},[600,10832,10833,10836,10837,10840],{},[604,10834,10835],{},"Routier ↔ non orienté"," (une route va dans les deux sens), ",[604,10838,10839],{},"Internet ↔\norienté"," (un lien hypertexte d'une page A vers B ne crée pas le lien réciproque).\nLe choix orienté\u002Fnon orienté découle de la situation modélisée.",[930,10842,10844,10952],{"correct":932,"slug":10843},"graphes-c1",[935,10845,10846],{"v-slot:question":697},[600,10847,10848,10849,1967,10900,10951],{},"Dans un graphe orienté, ",[701,10850,10852,10873],{"className":10851},[2415],[701,10853,10855],{"className":10854},[2419],[2421,10856,10857],{"xmlns":2423},[2425,10858,10859,10871],{},[2428,10860,10861,10863,10865,10867,10869],{},[2436,10862,1488],{"stretchy":2438},[2431,10864,6041],{},[2436,10866,6138],{"separator":2454},[2431,10868,10283],{},[2436,10870,2444],{"stretchy":2438},[2446,10872,10353],{"encoding":2448},[701,10874,10876],{"className":10875,"ariaHidden":2454},[2453],[701,10877,10879,10882,10885,10888,10891,10894,10897],{"className":10878},[2458],[701,10880],{"className":10881,"style":2463},[2462],[701,10883,1488],{"className":10884},[2473],[701,10886,6041],{"className":10887},[2467,2536],[701,10889,6138],{"className":10890},[6338],[701,10892],{"className":10893,"style":6342},[4680],[701,10895,10283],{"className":10896,"style":5799},[2467,2536],[701,10898,2444],{"className":10899},[2480],[701,10901,10903,10924],{"className":10902},[2415],[701,10904,10906],{"className":10905},[2419],[2421,10907,10908],{"xmlns":2423},[2425,10909,10910,10922],{},[2428,10911,10912,10914,10916,10918,10920],{},[2436,10913,1488],{"stretchy":2438},[2431,10915,10283],{},[2436,10917,6138],{"separator":2454},[2431,10919,6041],{},[2436,10921,2444],{"stretchy":2438},[2446,10923,10608],{"encoding":2448},[701,10925,10927],{"className":10926,"ariaHidden":2454},[2453],[701,10928,10930,10933,10936,10939,10942,10945,10948],{"className":10929},[2458],[701,10931],{"className":10932,"style":2463},[2462],[701,10934,1488],{"className":10935},[2473],[701,10937,10283],{"className":10938,"style":5799},[2467,2536],[701,10940,6138],{"className":10941},[6338],[701,10943],{"className":10944,"style":6342},[4680],[701,10946,6041],{"className":10947},[2467,2536],[701,10949,2444],{"className":10950},[2480]," représentent…",[935,10953,10954],{"v-slot:choices":697},[775,10955,10956,10959,10962],{},[778,10957,10958],{},"le même arc",[778,10960,10961],{},"deux arcs distincts",[778,10963,10964],{},"une seule arête",[595,10966,10968],{"id":10967},"représentation-1-matrice-dadjacence","Représentation 1 — matrice d'adjacence",[600,10970,10971,10972,11000,11001,11052,11053,3180,11056,11086,11087,11139],{},"On numérote les sommets de ",[701,10973,10975,10988],{"className":10974},[2415],[701,10976,10978],{"className":10977},[2419],[2421,10979,10980],{"xmlns":2423},[2425,10981,10982,10986],{},[2428,10983,10984],{},[2440,10985,749],{},[2446,10987,749],{"encoding":2448},[701,10989,10991],{"className":10990,"ariaHidden":2454},[2453],[701,10992,10994,10997],{"className":10993},[2458],[701,10995],{"className":10996,"style":5204},[2462],[701,10998,749],{"className":10999},[2467]," à ",[701,11002,11004,11022],{"className":11003},[2415],[701,11005,11007],{"className":11006},[2419],[2421,11008,11009],{"xmlns":2423},[2425,11010,11011,11019],{},[2428,11012,11013,11015,11017],{},[2431,11014,2512],{},[2436,11016,6075],{},[2440,11018,932],{},[2446,11020,11021],{"encoding":2448},"n - 1",[701,11023,11025,11043],{"className":11024,"ariaHidden":2454},[2453],[701,11026,11028,11031,11034,11037,11040],{"className":11027},[2458],[701,11029],{"className":11030,"style":7106},[2462],[701,11032,2512],{"className":11033},[2467,2536],[701,11035],{"className":11036,"style":5745},[4680],[701,11038,6075],{"className":11039},[5749],[701,11041],{"className":11042,"style":5745},[4680],[701,11044,11046,11049],{"className":11045},[2458],[701,11047],{"className":11048,"style":5204},[2462],[701,11050,932],{"className":11051},[2467],". La ",[604,11054,11055],{},"matrice d'adjacence",[701,11057,11059,11073],{"className":11058},[2415],[701,11060,11062],{"className":11061},[2419],[2421,11063,11064],{"xmlns":2423},[2425,11065,11066,11071],{},[2428,11067,11068],{},[2431,11069,11070],{},"M",[2446,11072,11070],{"encoding":2448},[701,11074,11076],{"className":11075,"ariaHidden":2454},[2453],[701,11077,11079,11082],{"className":11078},[2458],[701,11080],{"className":11081,"style":7988},[2462],[701,11083,11070],{"className":11084,"style":11085},[2467,2536],"margin-right:0.109em;"," est un\ntableau carré ",[701,11088,11090,11109],{"className":11089},[2415],[701,11091,11093],{"className":11092},[2419],[2421,11094,11095],{"xmlns":2423},[2425,11096,11097,11106],{},[2428,11098,11099,11101,11104],{},[2431,11100,2512],{},[2436,11102,11103],{},"×",[2431,11105,2512],{},[2446,11107,11108],{"encoding":2448},"n \\times n",[701,11110,11112,11130],{"className":11111,"ariaHidden":2454},[2453],[701,11113,11115,11118,11121,11124,11127],{"className":11114},[2458],[701,11116],{"className":11117,"style":7106},[2462],[701,11119,2512],{"className":11120},[2467,2536],[701,11122],{"className":11123,"style":5745},[4680],[701,11125,11103],{"className":11126},[5749],[701,11128],{"className":11129,"style":5745},[4680],[701,11131,11133,11136],{"className":11132},[2458],[701,11134],{"className":11135,"style":2566},[2462],[701,11137,2512],{"className":11138},[2467,2536]," où :",[600,11141,11142],{},[701,11143,11145,11233],{"className":11144},[2415],[701,11146,11148],{"className":11147},[2419],[2421,11149,11150],{"xmlns":2423},[2425,11151,11152,11230],{},[2428,11153,11154,11156,11159,11161,11164,11166,11169,11171,11173],{},[2431,11155,11070],{},[2436,11157,11158],{"stretchy":2438},"[",[2431,11160,5508],{},[2436,11162,11163],{"stretchy":2438},"]",[2436,11165,11158],{"stretchy":2438},[2431,11167,11168],{},"j",[2436,11170,11163],{"stretchy":2438},[2436,11172,746],{},[2428,11174,11175,11177],{},[2436,11176,5529],{"fence":2454},[5531,11178,11179,11216],{"rowspacing":5533,"columnalign":5534,"columnspacing":5535},[5537,11180,11181,11187],{},[5540,11182,11183],{},[5543,11184,11185],{"scriptlevel":749,"displaystyle":2438},[2440,11186,932],{},[5540,11188,11189],{},[5543,11190,11191],{"scriptlevel":749,"displaystyle":2438},[2428,11192,11193,11209,11211,11214],{},[2428,11194,11195,11198,11206],{},[5554,11196,11197],{},"s’il existe un arc (ou une ar",[11199,11200,11201,11203],"mover",{"accent":2454},[5554,11202,5515],{},[2436,11204,11205],{},"ˆ",[5554,11207,11208],{},"te) de ",[2431,11210,5508],{},[5554,11212,11213],{}," vers ",[2431,11215,11168],{},[5537,11217,11218,11224],{},[5540,11219,11220],{},[5543,11221,11222],{"scriptlevel":749,"displaystyle":2438},[2440,11223,749],{},[5540,11225,11226],{},[5543,11227,11228],{"scriptlevel":749,"displaystyle":2438},[5554,11229,5633],{},[2446,11231,11232],{"encoding":2448},"M[i][j] = \\begin{cases} 1 & \\text{s'il existe un arc (ou une arête) de } i \\text{ vers } j \\\\ 0 & \\text{sinon} \\end{cases}",[701,11234,11236,11273],{"className":11235,"ariaHidden":2454},[2453],[701,11237,11239,11242,11245,11248,11251,11254,11257,11261,11264,11267,11270],{"className":11238},[2458],[701,11240],{"className":11241,"style":2463},[2462],[701,11243,11070],{"className":11244,"style":11085},[2467,2536],[701,11246,11158],{"className":11247},[2473],[701,11249,5508],{"className":11250},[2467,2536],[701,11252,11163],{"className":11253},[2480],[701,11255,11158],{"className":11256},[2473],[701,11258,11168],{"className":11259,"style":11260},[2467,2536],"margin-right:0.0572em;",[701,11262,11163],{"className":11263},[2480],[701,11265],{"className":11266,"style":5190},[4680],[701,11268,746],{"className":11269},[5194],[701,11271],{"className":11272,"style":5190},[4680],[701,11274,11276,11279],{"className":11275},[2458],[701,11277],{"className":11278,"style":5677},[2462],[701,11280,11282,11288,11444],{"className":11281},[5681],[701,11283,11285],{"className":11284,"style":5686},[2473,5685],[701,11286,5529],{"className":11287},[5690,5691],[701,11289,11291],{"className":11290},[2467],[701,11292,11294,11339,11342],{"className":11293},[5531],[701,11295,11297],{"className":11296},[5701],[701,11298,11300,11331],{"className":11299},[5705,5706],[701,11301,11303,11328],{"className":11302},[5710],[701,11304,11306,11317],{"className":11305,"style":5715},[5714],[701,11307,11308,11311],{"style":5718},[701,11309],{"className":11310,"style":5723},[5722],[701,11312,11314],{"className":11313},[2467],[701,11315,932],{"className":11316},[2467],[701,11318,11319,11322],{"style":5732},[701,11320],{"className":11321,"style":5723},[5722],[701,11323,11325],{"className":11324},[2467],[701,11326,749],{"className":11327},[2467],[701,11329,5804],{"className":11330},[5803],[701,11332,11334],{"className":11333},[5710],[701,11335,11337],{"className":11336,"style":5889},[5714],[701,11338],{},[701,11340],{"className":11341,"style":5896},[5895],[701,11343,11345],{"className":11344},[5701],[701,11346,11348,11436],{"className":11347},[5705,5706],[701,11349,11351,11433],{"className":11350},[5710],[701,11352,11354,11419],{"className":11353,"style":5715},[5714],[701,11355,11356,11359],{"style":5718},[701,11357],{"className":11358,"style":5723},[5722],[701,11360,11362,11407,11410,11416],{"className":11361},[2467],[701,11363,11365,11368,11404],{"className":11364},[2467,5920],[701,11366,11197],{"className":11367},[2467],[701,11369,11372],{"className":11370},[2467,11371],"accent",[701,11373,11375],{"className":11374},[5705],[701,11376,11378],{"className":11377},[5710],[701,11379,11381,11391],{"className":11380,"style":2970},[5714],[701,11382,11384,11388],{"style":11383},"top:-3em;",[701,11385],{"className":11386,"style":11387},[5722],"height:3em;",[701,11389,5515],{"className":11390},[2467],[701,11392,11393,11396],{"style":11383},[701,11394],{"className":11395,"style":11387},[5722],[701,11397,11401],{"className":11398,"style":11400},[11399],"accent-body","left:-0.25em;",[701,11402,11205],{"className":11403},[2467],[701,11405,11208],{"className":11406},[2467],[701,11408,5508],{"className":11409},[2467,2536],[701,11411,11413],{"className":11412},[2467,5920],[701,11414,11213],{"className":11415},[2467],[701,11417,11168],{"className":11418,"style":11260},[2467,2536],[701,11420,11421,11424],{"style":5732},[701,11422],{"className":11423,"style":5723},[5722],[701,11425,11427],{"className":11426},[2467],[701,11428,11430],{"className":11429},[2467,5920],[701,11431,5633],{"className":11432},[2467],[701,11434,5804],{"className":11435},[5803],[701,11437,11439],{"className":11438},[5710],[701,11440,11442],{"className":11441,"style":5889},[5714],[701,11443],{},[701,11445],{"className":11446},[2480,5961],[600,11448,11449,11450,11452,11453,11456,11457,1185],{},"Pour un graphe ",[604,11451,10261],{},", la matrice est ",[604,11454,11455],{},"symétrique"," :\n",[701,11458,11460,11502],{"className":11459},[2415],[701,11461,11463],{"className":11462},[2419],[2421,11464,11465],{"xmlns":2423},[2425,11466,11467,11499],{},[2428,11468,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11493,11495,11497],{},[2431,11470,11070],{},[2436,11472,11158],{"stretchy":2438},[2431,11474,5508],{},[2436,11476,11163],{"stretchy":2438},[2436,11478,11158],{"stretchy":2438},[2431,11480,11168],{},[2436,11482,11163],{"stretchy":2438},[2436,11484,746],{},[2431,11486,11070],{},[2436,11488,11158],{"stretchy":2438},[2431,11490,11168],{},[2436,11492,11163],{"stretchy":2438},[2436,11494,11158],{"stretchy":2438},[2431,11496,5508],{},[2436,11498,11163],{"stretchy":2438},[2446,11500,11501],{"encoding":2448},"M[i][j] = M[j][i]",[701,11503,11505,11541],{"className":11504,"ariaHidden":2454},[2453],[701,11506,11508,11511,11514,11517,11520,11523,11526,11529,11532,11535,11538],{"className":11507},[2458],[701,11509],{"className":11510,"style":2463},[2462],[701,11512,11070],{"className":11513,"style":11085},[2467,2536],[701,11515,11158],{"className":11516},[2473],[701,11518,5508],{"className":11519},[2467,2536],[701,11521,11163],{"className":11522},[2480],[701,11524,11158],{"className":11525},[2473],[701,11527,11168],{"className":11528,"style":11260},[2467,2536],[701,11530,11163],{"className":11531},[2480],[701,11533],{"className":11534,"style":5190},[4680],[701,11536,746],{"className":11537},[5194],[701,11539],{"className":11540,"style":5190},[4680],[701,11542,11544,11547,11550,11553,11556,11559,11562,11565],{"className":11543},[2458],[701,11545],{"className":11546,"style":2463},[2462],[701,11548,11070],{"className":11549,"style":11085},[2467,2536],[701,11551,11158],{"className":11552},[2473],[701,11554,11168],{"className":11555,"style":11260},[2467,2536],[701,11557,11163],{"className":11558},[2480],[701,11560,11158],{"className":11561},[2473],[701,11563,5508],{"className":11564},[2467,2536],[701,11566,11163],{"className":11567},[2480],[692,11569,11571],{"className":694,"code":11570,"language":696,"meta":697,"style":697},"class GrapheMatrice:\n    \"\"\"Graphe à n sommets numérotés 0..n-1, représenté par matrice d'adjacence.\"\"\"\n\n    def __init__(self, n, oriente=False):\n        self.n = n\n        self.oriente = oriente\n        self.M = [[0] * n for _ in range(n)]\n\n    def ajouter_arete(self, u, v):\n        self.M[u][v] = 1\n        if not self.oriente:\n            self.M[v][u] = 1\n\n    def sont_adjacents(self, u, v):\n        return self.M[u][v] == 1\n\n    def voisins(self, u):\n        return [v for v in range(self.n) if self.M[u][v] == 1]\n",[623,11572,11573,11582,11587,11591,11606,11618,11630,11667,11671,11681,11693,11704,11716,11720,11729,11741,11745,11755],{"__ignoreMap":697},[701,11574,11575,11577,11580],{"class":703,"line":704},[701,11576,708],{"class":707},[701,11578,11579],{"class":711}," GrapheMatrice",[701,11581,716],{"class":715},[701,11583,11584],{"class":703,"line":719},[701,11585,11586],{"class":722},"    \"\"\"Graphe à n sommets numérotés 0..n-1, représenté par matrice d'adjacence.\"\"\"\n",[701,11588,11589],{"class":703,"line":726},[701,11590,730],{"emptyLinePlaceholder":729},[701,11592,11593,11595,11597,11600,11602,11604],{"class":703,"line":733},[701,11594,736],{"class":707},[701,11596,740],{"class":739},[701,11598,11599],{"class":715},"(self, n, oriente",[701,11601,746],{"class":707},[701,11603,2085],{"class":739},[701,11605,752],{"class":715},[701,11607,11608,11610,11613,11615],{"class":703,"line":755},[701,11609,758],{"class":739},[701,11611,11612],{"class":715},".n ",[701,11614,746],{"class":707},[701,11616,11617],{"class":715}," n\n",[701,11619,11620,11622,11625,11627],{"class":703,"line":1035},[701,11621,758],{"class":739},[701,11623,11624],{"class":715},".oriente ",[701,11626,746],{"class":707},[701,11628,11629],{"class":715}," oriente\n",[701,11631,11632,11634,11637,11639,11642,11644,11646,11649,11652,11655,11658,11661,11664],{"class":703,"line":1055},[701,11633,758],{"class":739},[701,11635,11636],{"class":715},".M ",[701,11638,746],{"class":707},[701,11640,11641],{"class":715}," [[",[701,11643,749],{"class":739},[701,11645,4477],{"class":715},[701,11647,11648],{"class":707},"*",[701,11650,11651],{"class":715}," n ",[701,11653,11654],{"class":707},"for",[701,11656,11657],{"class":715}," _ ",[701,11659,11660],{"class":707},"in",[701,11662,11663],{"class":739}," range",[701,11665,11666],{"class":715},"(n)]\n",[701,11668,11669],{"class":703,"line":1060},[701,11670,730],{"emptyLinePlaceholder":729},[701,11672,11673,11675,11678],{"class":703,"line":1070},[701,11674,736],{"class":707},[701,11676,11677],{"class":711}," ajouter_arete",[701,11679,11680],{"class":715},"(self, u, v):\n",[701,11682,11683,11685,11688,11690],{"class":703,"line":1088},[701,11684,758],{"class":739},[701,11686,11687],{"class":715},".M[u][v] ",[701,11689,746],{"class":707},[701,11691,11692],{"class":739}," 1\n",[701,11694,11695,11697,11699,11701],{"class":703,"line":1093},[701,11696,1466],{"class":707},[701,11698,2225],{"class":707},[701,11700,1044],{"class":739},[701,11702,11703],{"class":715},".oriente:\n",[701,11705,11706,11709,11712,11714],{"class":703,"line":1104},[701,11707,11708],{"class":739},"            self",[701,11710,11711],{"class":715},".M[v][u] ",[701,11713,746],{"class":707},[701,11715,11692],{"class":739},[701,11717,11718],{"class":703,"line":1548},[701,11719,730],{"emptyLinePlaceholder":729},[701,11721,11722,11724,11727],{"class":703,"line":1563},[701,11723,736],{"class":707},[701,11725,11726],{"class":711}," sont_adjacents",[701,11728,11680],{"class":715},[701,11730,11731,11733,11735,11737,11739],{"class":703,"line":1577},[701,11732,1107],{"class":707},[701,11734,1044],{"class":739},[701,11736,11687],{"class":715},[701,11738,2291],{"class":707},[701,11740,11692],{"class":739},[701,11742,11743],{"class":703,"line":1594},[701,11744,730],{"emptyLinePlaceholder":729},[701,11746,11747,11749,11752],{"class":703,"line":1599},[701,11748,736],{"class":707},[701,11750,11751],{"class":711}," voisins",[701,11753,11754],{"class":715},"(self, u):\n",[701,11756,11757,11759,11762,11764,11767,11769,11771,11773,11775,11778,11781,11783,11785,11787,11789],{"class":703,"line":1608},[701,11758,1107],{"class":707},[701,11760,11761],{"class":715}," [v ",[701,11763,11654],{"class":707},[701,11765,11766],{"class":715}," v ",[701,11768,11660],{"class":707},[701,11770,11663],{"class":739},[701,11772,1488],{"class":715},[701,11774,813],{"class":739},[701,11776,11777],{"class":715},".n) ",[701,11779,11780],{"class":707},"if",[701,11782,1044],{"class":739},[701,11784,11687],{"class":715},[701,11786,2291],{"class":707},[701,11788,6003],{"class":739},[701,11790,4175],{"class":715},[600,11792,11793,829],{},[604,11794,11795],{},"Coûts",[775,11797,11798,11878,11927],{},[778,11799,11800,11801,11877],{},"Espace : ",[701,11802,11804,11828],{"className":11803},[2415],[701,11805,11807],{"className":11806},[2419],[2421,11808,11809],{"xmlns":2423},[2425,11810,11811,11825],{},[2428,11812,11813,11815,11817,11823],{},[2431,11814,2434],{"mathvariant":2433},[2436,11816,1488],{"stretchy":2438},[7158,11818,11819,11821],{},[2431,11820,2512],{},[2440,11822,2355],{},[2436,11824,2444],{"stretchy":2438},[2446,11826,11827],{"encoding":2448},"\\mathcal{O}(n^2)",[701,11829,11831],{"className":11830,"ariaHidden":2454},[2453],[701,11832,11834,11838,11841,11844,11874],{"className":11833},[2458],[701,11835],{"className":11836,"style":11837},[2462],"height:1.0641em;vertical-align:-0.25em;",[701,11839,2434],{"className":11840,"style":2469},[2467,2468],[701,11842,1488],{"className":11843},[2473],[701,11845,11847,11850],{"className":11846},[2467],[701,11848,2512],{"className":11849},[2467,2536],[701,11851,11853],{"className":11852},[5771],[701,11854,11856],{"className":11855},[5705],[701,11857,11859],{"className":11858},[5710],[701,11860,11863],{"className":11861,"style":11862},[5714],"height:0.8141em;",[701,11864,11865,11868],{"style":7264},[701,11866],{"className":11867,"style":5788},[5722],[701,11869,11871],{"className":11870},[5792,5793,5794,5795],[701,11872,2355],{"className":11873},[2467,5795],[701,11875,2444],{"className":11876},[2480]," — quel que soit le nombre d'arêtes.",[778,11879,11880,11881,1715,11884,1185],{},"Test d'adjacence ",[623,11882,11883],{},"sont_adjacents",[701,11885,11887,11906],{"className":11886},[2415],[701,11888,11890],{"className":11889},[2419],[2421,11891,11892],{"xmlns":2423},[2425,11893,11894,11904],{},[2428,11895,11896,11898,11900,11902],{},[2431,11897,2434],{"mathvariant":2433},[2436,11899,1488],{"stretchy":2438},[2440,11901,932],{},[2436,11903,2444],{"stretchy":2438},[2446,11905,2449],{"encoding":2448},[701,11907,11909],{"className":11908,"ariaHidden":2454},[2453],[701,11910,11912,11915,11918,11921,11924],{"className":11911},[2458],[701,11913],{"className":11914,"style":2463},[2462],[701,11916,2434],{"className":11917,"style":2469},[2467,2468],[701,11919,1488],{"className":11920},[2473],[701,11922,932],{"className":11923},[2467],[701,11925,2444],{"className":11926},[2480],[778,11928,11929,11930,11973],{},"Liste des voisins : ",[701,11931,11933,11952],{"className":11932},[2415],[701,11934,11936],{"className":11935},[2419],[2421,11937,11938],{"xmlns":2423},[2425,11939,11940,11950],{},[2428,11941,11942,11944,11946,11948],{},[2431,11943,2434],{"mathvariant":2433},[2436,11945,1488],{"stretchy":2438},[2431,11947,2512],{},[2436,11949,2444],{"stretchy":2438},[2446,11951,2517],{"encoding":2448},[701,11953,11955],{"className":11954,"ariaHidden":2454},[2453],[701,11956,11958,11961,11964,11967,11970],{"className":11957},[2458],[701,11959],{"className":11960,"style":2463},[2462],[701,11962,2434],{"className":11963,"style":2469},[2467,2468],[701,11965,1488],{"className":11966},[2473],[701,11968,2512],{"className":11969},[2467,2536],[701,11971,2444],{"className":11972},[2480]," (parcours d'une ligne).",[595,11975,11977],{"id":11976},"représentation-2-liste-de-successeurs","Représentation 2 — liste de successeurs",[600,11979,11980,11981,12009,12010,12013],{},"Pour chaque sommet ",[701,11982,11984,11997],{"className":11983},[2415],[701,11985,11987],{"className":11986},[2419],[2421,11988,11989],{"xmlns":2423},[2425,11990,11991,11995],{},[2428,11992,11993],{},[2431,11994,6041],{},[2446,11996,6041],{"encoding":2448},[701,11998,12000],{"className":11999,"ariaHidden":2454},[2453],[701,12001,12003,12006],{"className":12002},[2458],[701,12004],{"className":12005,"style":2566},[2462],[701,12007,6041],{"className":12008},[2467,2536],", on stocke la ",[604,12011,12012],{},"liste de ses successeurs"," (ou voisins,\npour un graphe non orienté). En Python, on utilise un dictionnaire dont les clés\nsont les sommets et les valeurs sont des listes.",[692,12015,12017],{"className":694,"code":12016,"language":696,"meta":697,"style":697},"class GrapheListe:\n    \"\"\"Graphe représenté par une liste de successeurs (dictionnaire).\"\"\"\n\n    def __init__(self, sommets, oriente=False):\n        self.oriente = oriente\n        self.succ = {s: [] for s in sommets}\n\n    def ajouter_arete(self, u, v):\n        self.succ[u].append(v)\n        if not self.oriente:\n            self.succ[v].append(u)\n\n    def sont_adjacents(self, u, v):\n        return v in self.succ[u]\n\n    def voisins(self, u):\n        return list(self.succ[u])\n",[623,12018,12019,12028,12033,12037,12052,12062,12084,12088,12096,12103,12113,12120,12124,12132,12145,12149,12157],{"__ignoreMap":697},[701,12020,12021,12023,12026],{"class":703,"line":704},[701,12022,708],{"class":707},[701,12024,12025],{"class":711}," GrapheListe",[701,12027,716],{"class":715},[701,12029,12030],{"class":703,"line":719},[701,12031,12032],{"class":722},"    \"\"\"Graphe représenté par une liste de successeurs (dictionnaire).\"\"\"\n",[701,12034,12035],{"class":703,"line":726},[701,12036,730],{"emptyLinePlaceholder":729},[701,12038,12039,12041,12043,12046,12048,12050],{"class":703,"line":733},[701,12040,736],{"class":707},[701,12042,740],{"class":739},[701,12044,12045],{"class":715},"(self, sommets, oriente",[701,12047,746],{"class":707},[701,12049,2085],{"class":739},[701,12051,752],{"class":715},[701,12053,12054,12056,12058,12060],{"class":703,"line":755},[701,12055,758],{"class":739},[701,12057,11624],{"class":715},[701,12059,746],{"class":707},[701,12061,11629],{"class":715},[701,12063,12064,12066,12069,12071,12074,12076,12079,12081],{"class":703,"line":1035},[701,12065,758],{"class":739},[701,12067,12068],{"class":715},".succ ",[701,12070,746],{"class":707},[701,12072,12073],{"class":715}," {s: [] ",[701,12075,11654],{"class":707},[701,12077,12078],{"class":715}," s ",[701,12080,11660],{"class":707},[701,12082,12083],{"class":715}," sommets}\n",[701,12085,12086],{"class":703,"line":1055},[701,12087,730],{"emptyLinePlaceholder":729},[701,12089,12090,12092,12094],{"class":703,"line":1060},[701,12091,736],{"class":707},[701,12093,11677],{"class":711},[701,12095,11680],{"class":715},[701,12097,12098,12100],{"class":703,"line":1070},[701,12099,758],{"class":739},[701,12101,12102],{"class":715},".succ[u].append(v)\n",[701,12104,12105,12107,12109,12111],{"class":703,"line":1088},[701,12106,1466],{"class":707},[701,12108,2225],{"class":707},[701,12110,1044],{"class":739},[701,12112,11703],{"class":715},[701,12114,12115,12117],{"class":703,"line":1093},[701,12116,11708],{"class":739},[701,12118,12119],{"class":715},".succ[v].append(u)\n",[701,12121,12122],{"class":703,"line":1104},[701,12123,730],{"emptyLinePlaceholder":729},[701,12125,12126,12128,12130],{"class":703,"line":1548},[701,12127,736],{"class":707},[701,12129,11726],{"class":711},[701,12131,11680],{"class":715},[701,12133,12134,12136,12138,12140,12142],{"class":703,"line":1563},[701,12135,1107],{"class":707},[701,12137,11766],{"class":715},[701,12139,11660],{"class":707},[701,12141,1044],{"class":739},[701,12143,12144],{"class":715},".succ[u]\n",[701,12146,12147],{"class":703,"line":1577},[701,12148,730],{"emptyLinePlaceholder":729},[701,12150,12151,12153,12155],{"class":703,"line":1594},[701,12152,736],{"class":707},[701,12154,11751],{"class":711},[701,12156,11754],{"class":715},[701,12158,12159,12161,12164,12166,12168],{"class":703,"line":1599},[701,12160,1107],{"class":707},[701,12162,12163],{"class":739}," list",[701,12165,1488],{"class":715},[701,12167,813],{"class":739},[701,12169,12170],{"class":715},".succ[u])\n",[600,12172,12173,12175,12176,12220,12221,3042,12224,12252],{},[604,12174,11795],{}," (où ",[701,12177,12179,12199],{"className":12178},[2415],[701,12180,12182],{"className":12181},[2419],[2421,12183,12184],{"xmlns":2423},[2425,12185,12186,12196],{},[2428,12187,12188,12190,12192,12194],{},[2431,12189,5624],{},[2436,12191,1488],{"stretchy":2438},[2431,12193,6041],{},[2436,12195,2444],{"stretchy":2438},[2446,12197,12198],{"encoding":2448},"d(u)",[701,12200,12202],{"className":12201,"ariaHidden":2454},[2453],[701,12203,12205,12208,12211,12214,12217],{"className":12204},[2458],[701,12206],{"className":12207,"style":2463},[2462],[701,12209,5624],{"className":12210},[2467,2536],[701,12212,1488],{"className":12213},[2473],[701,12215,6041],{"className":12216},[2467,2536],[701,12218,2444],{"className":12219},[2480]," est le ",[604,12222,12223],{},"degré",[701,12225,12227,12240],{"className":12226},[2415],[701,12228,12230],{"className":12229},[2419],[2421,12231,12232],{"xmlns":2423},[2425,12233,12234,12238],{},[2428,12235,12236],{},[2431,12237,6041],{},[2446,12239,6041],{"encoding":2448},[701,12241,12243],{"className":12242,"ariaHidden":2454},[2453],[701,12244,12246,12249],{"className":12245},[2458],[701,12247],{"className":12248,"style":2566},[2462],[701,12250,6041],{"className":12251},[2467,2536],", c'est-à-dire son nombre de\nvoisins) :",[775,12254,12255,12327,12386],{},[778,12256,11800,12257,12323,12324,1185],{},[701,12258,12260,12284],{"className":12259},[2415],[701,12261,12263],{"className":12262},[2419],[2421,12264,12265],{"xmlns":2423},[2425,12266,12267,12281],{},[2428,12268,12269,12271,12273,12275,12277,12279],{},[2431,12270,2434],{"mathvariant":2433},[2436,12272,1488],{"stretchy":2438},[2431,12274,2512],{},[2436,12276,1049],{},[2431,12278,4685],{},[2436,12280,2444],{"stretchy":2438},[2446,12282,12283],{"encoding":2448},"\\mathcal{O}(n + m)",[701,12285,12287,12311],{"className":12286,"ariaHidden":2454},[2453],[701,12288,12290,12293,12296,12299,12302,12305,12308],{"className":12289},[2458],[701,12291],{"className":12292,"style":2463},[2462],[701,12294,2434],{"className":12295,"style":2469},[2467,2468],[701,12297,1488],{"className":12298},[2473],[701,12300,2512],{"className":12301},[2467,2536],[701,12303],{"className":12304,"style":5745},[4680],[701,12306,1049],{"className":12307},[5749],[701,12309],{"className":12310,"style":5745},[4680],[701,12312,12314,12317,12320],{"className":12313},[2458],[701,12315],{"className":12316,"style":2463},[2462],[701,12318,4685],{"className":12319},[2467,2536],[701,12321,2444],{"className":12322},[2480]," — économique pour les graphes ",[604,12325,12326],{},"creux",[778,12328,12329,12330,1185],{},"Test d'adjacence : ",[701,12331,12333,12359],{"className":12332},[2415],[701,12334,12336],{"className":12335},[2419],[2421,12337,12338],{"xmlns":2423},[2425,12339,12340,12356],{},[2428,12341,12342,12344,12346,12348,12350,12352,12354],{},[2431,12343,2434],{"mathvariant":2433},[2436,12345,1488],{"stretchy":2438},[2431,12347,5624],{},[2436,12349,1488],{"stretchy":2438},[2431,12351,6041],{},[2436,12353,2444],{"stretchy":2438},[2436,12355,2444],{"stretchy":2438},[2446,12357,12358],{"encoding":2448},"\\mathcal{O}(d(u))",[701,12360,12362],{"className":12361,"ariaHidden":2454},[2453],[701,12363,12365,12368,12371,12374,12377,12380,12383],{"className":12364},[2458],[701,12366],{"className":12367,"style":2463},[2462],[701,12369,2434],{"className":12370,"style":2469},[2467,2468],[701,12372,1488],{"className":12373},[2473],[701,12375,5624],{"className":12376},[2467,2536],[701,12378,1488],{"className":12379},[2473],[701,12381,6041],{"className":12382},[2467,2536],[701,12384,6395],{"className":12385},[2480],[778,12387,11929,12388,1185],{},[701,12389,12391,12416],{"className":12390},[2415],[701,12392,12394],{"className":12393},[2419],[2421,12395,12396],{"xmlns":2423},[2425,12397,12398,12414],{},[2428,12399,12400,12402,12404,12406,12408,12410,12412],{},[2431,12401,2434],{"mathvariant":2433},[2436,12403,1488],{"stretchy":2438},[2431,12405,5624],{},[2436,12407,1488],{"stretchy":2438},[2431,12409,6041],{},[2436,12411,2444],{"stretchy":2438},[2436,12413,2444],{"stretchy":2438},[2446,12415,12358],{"encoding":2448},[701,12417,12419],{"className":12418,"ariaHidden":2454},[2453],[701,12420,12422,12425,12428,12431,12434,12437,12440],{"className":12421},[2458],[701,12423],{"className":12424,"style":2463},[2462],[701,12426,2434],{"className":12427,"style":2469},[2467,2468],[701,12429,1488],{"className":12430},[2473],[701,12432,5624],{"className":12433},[2467,2536],[701,12435,1488],{"className":12436},[2473],[701,12438,6041],{"className":12439},[2467,2536],[701,12441,6395],{"className":12442},[2480],[1213,12444,12445],{},[600,12446,12447,12450,12451,790,12454,12537,12538,790,12540,12623],{},[604,12448,12449],{},"Règle pratique"," : matrice d'adjacence si le graphe est ",[604,12452,12453],{},"dense",[701,12455,12457,12480],{"className":12456},[2415],[701,12458,12460],{"className":12459},[2419],[2421,12461,12462],{"xmlns":2423},[2425,12463,12464,12477],{},[2428,12465,12466,12468,12471],{},[2431,12467,4685],{},[2436,12469,12470],{},"≈",[7158,12472,12473,12475],{},[2431,12474,2512],{},[2440,12476,2355],{},[2446,12478,12479],{"encoding":2448},"m \\approx n^2",[701,12481,12483,12502],{"className":12482,"ariaHidden":2454},[2453],[701,12484,12486,12490,12493,12496,12499],{"className":12485},[2458],[701,12487],{"className":12488,"style":12489},[2462],"height:0.4831em;",[701,12491,4685],{"className":12492},[2467,2536],[701,12494],{"className":12495,"style":5190},[4680],[701,12497,12470],{"className":12498},[5194],[701,12500],{"className":12501,"style":5190},[4680],[701,12503,12505,12508],{"className":12504},[2458],[701,12506],{"className":12507,"style":11862},[2462],[701,12509,12511,12514],{"className":12510},[2467],[701,12512,2512],{"className":12513},[2467,2536],[701,12515,12517],{"className":12516},[5771],[701,12518,12520],{"className":12519},[5705],[701,12521,12523],{"className":12522},[5710],[701,12524,12526],{"className":12525,"style":11862},[5714],[701,12527,12528,12531],{"style":7264},[701,12529],{"className":12530,"style":5788},[5722],[701,12532,12534],{"className":12533},[5792,5793,5794,5795],[701,12535,2355],{"className":12536},[2467,5795],")\nou si les tests d'adjacence sont fréquents ; liste de successeurs si le graphe\nest ",[604,12539,12326],{},[701,12541,12543,12566],{"className":12542},[2415],[701,12544,12546],{"className":12545},[2419],[2421,12547,12548],{"xmlns":2423},[2425,12549,12550,12563],{},[2428,12551,12552,12554,12557],{},[2431,12553,4685],{},[2436,12555,12556],{},"≪",[7158,12558,12559,12561],{},[2431,12560,2512],{},[2440,12562,2355],{},[2446,12564,12565],{"encoding":2448},"m \\ll n^2",[701,12567,12569,12588],{"className":12568,"ariaHidden":2454},[2453],[701,12570,12572,12576,12579,12582,12585],{"className":12571},[2458],[701,12573],{"className":12574,"style":12575},[2462],"height:0.5782em;vertical-align:-0.0391em;",[701,12577,4685],{"className":12578},[2467,2536],[701,12580],{"className":12581,"style":5190},[4680],[701,12583,12556],{"className":12584},[5194],[701,12586],{"className":12587,"style":5190},[4680],[701,12589,12591,12594],{"className":12590},[2458],[701,12592],{"className":12593,"style":11862},[2462],[701,12595,12597,12600],{"className":12596},[2467],[701,12598,2512],{"className":12599},[2467,2536],[701,12601,12603],{"className":12602},[5771],[701,12604,12606],{"className":12605},[5705],[701,12607,12609],{"className":12608},[5710],[701,12610,12612],{"className":12611,"style":11862},[5714],[701,12613,12614,12617],{"style":7264},[701,12615],{"className":12616,"style":5788},[5722],[701,12618,12620],{"className":12619},[5792,5793,5794,5795],[701,12621,2355],{"className":12622},[2467,5795],") ou si l'on parcourt souvent les voisins.",[930,12625,12627,12632],{"correct":932,"slug":12626},"graphes-c2",[935,12628,12629],{"v-slot:question":697},[600,12630,12631],{},"Pour un réseau social avec 1 million d'utilisateurs et 100 amis moyens, quelle représentation est viable ?",[935,12633,12634],{"v-slot:choices":697},[775,12635,12636,12639,12642],{},[778,12637,12638],{},"matrice d’adjacence",[778,12640,12641],{},"liste de successeurs",[778,12643,12644],{},"les deux à coût égal",[595,12646,12648],{"id":12647},"passer-dune-représentation-à-lautre","Passer d'une représentation à l'autre",[600,12650,12651],{},"Le BO demande explicitement de savoir convertir. Voici les deux sens, en\nPython :",[692,12653,12655],{"className":694,"code":12654,"language":696,"meta":697,"style":697},"def matrice_vers_liste(M):\n    \"\"\"De matrice d'adjacence vers liste de successeurs.\"\"\"\n    n = len(M)\n    succ = {i: [] for i in range(n)}\n    for i in range(n):\n        for j in range(n):\n            if M[i][j] == 1:\n                succ[i].append(j)\n    return succ\n\ndef liste_vers_matrice(succ):\n    \"\"\"De liste de successeurs vers matrice d'adjacence.\"\"\"\n    n = len(succ)\n    M = [[0] * n for _ in range(n)]\n    for u, vs in succ.items():\n        for v in vs:\n            M[u][v] = 1\n    return M\n",[623,12656,12657,12667,12672,12684,12706,12720,12734,12748,12753,12760,12764,12774,12779,12790,12817,12829,12840,12849],{"__ignoreMap":697},[701,12658,12659,12661,12664],{"class":703,"line":704},[701,12660,3238],{"class":707},[701,12662,12663],{"class":711}," matrice_vers_liste",[701,12665,12666],{"class":715},"(M):\n",[701,12668,12669],{"class":703,"line":719},[701,12670,12671],{"class":722},"    \"\"\"De matrice d'adjacence vers liste de successeurs.\"\"\"\n",[701,12673,12674,12677,12679,12681],{"class":703,"line":726},[701,12675,12676],{"class":715},"    n ",[701,12678,746],{"class":707},[701,12680,2281],{"class":739},[701,12682,12683],{"class":715},"(M)\n",[701,12685,12686,12689,12691,12694,12696,12699,12701,12703],{"class":703,"line":733},[701,12687,12688],{"class":715},"    succ ",[701,12690,746],{"class":707},[701,12692,12693],{"class":715}," {i: [] ",[701,12695,11654],{"class":707},[701,12697,12698],{"class":715}," i ",[701,12700,11660],{"class":707},[701,12702,11663],{"class":739},[701,12704,12705],{"class":715},"(n)}\n",[701,12707,12708,12711,12713,12715,12717],{"class":703,"line":755},[701,12709,12710],{"class":707},"    for",[701,12712,12698],{"class":715},[701,12714,11660],{"class":707},[701,12716,11663],{"class":739},[701,12718,12719],{"class":715},"(n):\n",[701,12721,12722,12725,12728,12730,12732],{"class":703,"line":1035},[701,12723,12724],{"class":707},"        for",[701,12726,12727],{"class":715}," j ",[701,12729,11660],{"class":707},[701,12731,11663],{"class":739},[701,12733,12719],{"class":715},[701,12735,12736,12739,12742,12744,12746],{"class":703,"line":1055},[701,12737,12738],{"class":707},"            if",[701,12740,12741],{"class":715}," M[i][j] ",[701,12743,2291],{"class":707},[701,12745,6003],{"class":739},[701,12747,716],{"class":715},[701,12749,12750],{"class":703,"line":1060},[701,12751,12752],{"class":715},"                succ[i].append(j)\n",[701,12754,12755,12757],{"class":703,"line":1070},[701,12756,6000],{"class":707},[701,12758,12759],{"class":715}," succ\n",[701,12761,12762],{"class":703,"line":1088},[701,12763,730],{"emptyLinePlaceholder":729},[701,12765,12766,12768,12771],{"class":703,"line":1093},[701,12767,3238],{"class":707},[701,12769,12770],{"class":711}," liste_vers_matrice",[701,12772,12773],{"class":715},"(succ):\n",[701,12775,12776],{"class":703,"line":1104},[701,12777,12778],{"class":722},"    \"\"\"De liste de successeurs vers matrice d'adjacence.\"\"\"\n",[701,12780,12781,12783,12785,12787],{"class":703,"line":1548},[701,12782,12676],{"class":715},[701,12784,746],{"class":707},[701,12786,2281],{"class":739},[701,12788,12789],{"class":715},"(succ)\n",[701,12791,12792,12795,12797,12799,12801,12803,12805,12807,12809,12811,12813,12815],{"class":703,"line":1563},[701,12793,12794],{"class":715},"    M ",[701,12796,746],{"class":707},[701,12798,11641],{"class":715},[701,12800,749],{"class":739},[701,12802,4477],{"class":715},[701,12804,11648],{"class":707},[701,12806,11651],{"class":715},[701,12808,11654],{"class":707},[701,12810,11657],{"class":715},[701,12812,11660],{"class":707},[701,12814,11663],{"class":739},[701,12816,11666],{"class":715},[701,12818,12819,12821,12824,12826],{"class":703,"line":1577},[701,12820,12710],{"class":707},[701,12822,12823],{"class":715}," u, vs ",[701,12825,11660],{"class":707},[701,12827,12828],{"class":715}," succ.items():\n",[701,12830,12831,12833,12835,12837],{"class":703,"line":1594},[701,12832,12724],{"class":707},[701,12834,11766],{"class":715},[701,12836,11660],{"class":707},[701,12838,12839],{"class":715}," vs:\n",[701,12841,12842,12845,12847],{"class":703,"line":1599},[701,12843,12844],{"class":715},"            M[u][v] ",[701,12846,746],{"class":707},[701,12848,11692],{"class":739},[701,12850,12851,12853],{"class":703,"line":1608},[701,12852,6000],{"class":707},[701,12854,12855],{"class":715}," M\n",[600,12857,12858,829],{},[604,12859,12860],{},"Complexités",[775,12862,12863,12942],{},[778,12864,12865,1715,12868,12941],{},[623,12866,12867],{},"matrice_vers_liste",[701,12869,12871,12894],{"className":12870},[2415],[701,12872,12874],{"className":12873},[2419],[2421,12875,12876],{"xmlns":2423},[2425,12877,12878,12892],{},[2428,12879,12880,12882,12884,12890],{},[2431,12881,2434],{"mathvariant":2433},[2436,12883,1488],{"stretchy":2438},[7158,12885,12886,12888],{},[2431,12887,2512],{},[2440,12889,2355],{},[2436,12891,2444],{"stretchy":2438},[2446,12893,11827],{"encoding":2448},[701,12895,12897],{"className":12896,"ariaHidden":2454},[2453],[701,12898,12900,12903,12906,12909,12938],{"className":12899},[2458],[701,12901],{"className":12902,"style":11837},[2462],[701,12904,2434],{"className":12905,"style":2469},[2467,2468],[701,12907,1488],{"className":12908},[2473],[701,12910,12912,12915],{"className":12911},[2467],[701,12913,2512],{"className":12914},[2467,2536],[701,12916,12918],{"className":12917},[5771],[701,12919,12921],{"className":12920},[5705],[701,12922,12924],{"className":12923},[5710],[701,12925,12927],{"className":12926,"style":11862},[5714],[701,12928,12929,12932],{"style":7264},[701,12930],{"className":12931,"style":5788},[5722],[701,12933,12935],{"className":12934},[5792,5793,5794,5795],[701,12936,2355],{"className":12937},[2467,5795],[701,12939,2444],{"className":12940},[2480]," — on lit toute la matrice.",[778,12943,12944,1715,12947,13012],{},[623,12945,12946],{},"liste_vers_matrice",[701,12948,12950,12973],{"className":12949},[2415],[701,12951,12953],{"className":12952},[2419],[2421,12954,12955],{"xmlns":2423},[2425,12956,12957,12971],{},[2428,12958,12959,12961,12963,12965,12967,12969],{},[2431,12960,2434],{"mathvariant":2433},[2436,12962,1488],{"stretchy":2438},[2431,12964,2512],{},[2436,12966,1049],{},[2431,12968,4685],{},[2436,12970,2444],{"stretchy":2438},[2446,12972,12283],{"encoding":2448},[701,12974,12976,13000],{"className":12975,"ariaHidden":2454},[2453],[701,12977,12979,12982,12985,12988,12991,12994,12997],{"className":12978},[2458],[701,12980],{"className":12981,"style":2463},[2462],[701,12983,2434],{"className":12984,"style":2469},[2467,2468],[701,12986,1488],{"className":12987},[2473],[701,12989,2512],{"className":12990},[2467,2536],[701,12992],{"className":12993,"style":5745},[4680],[701,12995,1049],{"className":12996},[5749],[701,12998],{"className":12999,"style":5745},[4680],[701,13001,13003,13006,13009],{"className":13002},[2458],[701,13004],{"className":13005,"style":2463},[2462],[701,13007,4685],{"className":13008},[2467,2536],[701,13010,2444],{"className":13011},[2480]," — on alloue la matrice, on parcourt\nles arêtes.",[595,13014,13016],{"id":13015},"liste-de-prédécesseurs-cas-orienté","Liste de prédécesseurs (cas orienté)",[600,13018,13019,13020,13023],{},"Pour un graphe orienté, on peut symétriquement vouloir, pour chaque sommet, la\n",[604,13021,13022],{},"liste de ses prédécesseurs",". Elle se construit à partir des successeurs en\ninversant les arcs :",[692,13025,13027],{"className":694,"code":13026,"language":696,"meta":697,"style":697},"def predecesseurs(succ):\n    pred = {u: [] for u in succ}\n    for u, vs in succ.items():\n        for v in vs:\n            pred[v].append(u)\n    return pred\n",[623,13028,13029,13038,13058,13068,13078,13083],{"__ignoreMap":697},[701,13030,13031,13033,13036],{"class":703,"line":704},[701,13032,3238],{"class":707},[701,13034,13035],{"class":711}," predecesseurs",[701,13037,12773],{"class":715},[701,13039,13040,13043,13045,13048,13050,13053,13055],{"class":703,"line":719},[701,13041,13042],{"class":715},"    pred ",[701,13044,746],{"class":707},[701,13046,13047],{"class":715}," {u: [] ",[701,13049,11654],{"class":707},[701,13051,13052],{"class":715}," u ",[701,13054,11660],{"class":707},[701,13056,13057],{"class":715}," succ}\n",[701,13059,13060,13062,13064,13066],{"class":703,"line":726},[701,13061,12710],{"class":707},[701,13063,12823],{"class":715},[701,13065,11660],{"class":707},[701,13067,12828],{"class":715},[701,13069,13070,13072,13074,13076],{"class":703,"line":733},[701,13071,12724],{"class":707},[701,13073,11766],{"class":715},[701,13075,11660],{"class":707},[701,13077,12839],{"class":715},[701,13079,13080],{"class":703,"line":755},[701,13081,13082],{"class":715},"            pred[v].append(u)\n",[701,13084,13085,13087],{"class":703,"line":1035},[701,13086,6000],{"class":707},[701,13088,13089],{"class":715}," pred\n",[600,13091,11449,13092,13094],{},[604,13093,10261],{},", successeurs et prédécesseurs coïncident — c'est\nla liste des voisins.",[595,13096,1790],{"id":1789},[600,13098,13099],{},"Le chapitre TE exploite ces représentations pour les parcours (BFS, DFS) et les\nalgorithmes de plus court chemin (Dijkstra). Le choix de la représentation\ninfluence directement la complexité de ces algorithmes — vous y reviendrez.",[674,13101],{"code":10171},[1912,13103,13104],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":13106},[13107,13108,13109,13110,13111,13112,13113],{"id":1949,"depth":719,"text":1950},{"id":4979,"depth":719,"text":4980},{"id":10967,"depth":719,"text":10968},{"id":11976,"depth":719,"text":11977},{"id":12647,"depth":719,"text":12648},{"id":13015,"depth":719,"text":13016},{"id":1789,"depth":719,"text":1790},"Sommets et arêtes, orientés ou non — matrice d'adjacence et liste de successeurs, et le passage de l'une à l'autre.",{},[13117,13120],{"slug":10843,"kind":1930,"question":13118,"choices":13119,"correct":932,"multi":1933,"explanation":697},"Dans un graphe orienté, (u,v)(u, v)(u,v) et (v,u)(v, u)(v,u) représentent…",[10958,10961,10964],{"slug":12626,"kind":1930,"question":12631,"choices":13121,"correct":932,"multi":1933,"explanation":697},[12638,12641,12644],{"title":473,"description":13114},"hHlZmC5Km2YR9HloYwvbGT97fkoOtdRk34TrNeKUcSs",{"id":13125,"title":451,"bo":13126,"body":13127,"description":13235,"eval":1925,"extension":1926,"labo":1925,"meta":13236,"navigation":729,"path":452,"quizzes":13238,"readingTime":704,"seo":13239,"stem":453,"tp":1925,"__hash__":13240},"cours\u002F2.nsi-tale\u002Fta-structures-donnees\u002F0.index.md",[4940,10171,3815,589,590],{"type":592,"value":13128,"toc":13231},[13129,13133,13140,13143,13183,13190,13193,13224],[595,13130,13132],{"id":13131},"au-programme","Au programme",[600,13134,13135,13136,13139],{},"Le chapitre TA fonde la fin du cycle Terminale sur une question centrale : ",[604,13137,13138],{},"comment\norganise-t-on les données pour pouvoir agir efficacement dessus ?"," Les algorithmes\nétudiés en parallèle au chapitre TE supposent presque tous une structure d'accueil\nadaptée — un parcours en largeur exige une file, une recherche dichotomique un\ntableau trié, un parcours d'arborescence une représentation hiérarchique.",[600,13141,13142],{},"Vous y apprenez à :",[775,13144,13145,13155,13165,13171,13177],{},[778,13146,13147,13150,13151,13154],{},[604,13148,13149],{},"écrire des classes"," en Python, avec leurs attributs, leurs méthodes et la\nnotion d'instance — le vocabulaire de la programmation orientée objet (TA05) —\net ",[604,13152,13153],{},"séparer l'interface d'une structure de son implémentation"," (TA04), en\nraisonnant sur le contrat avant le code ;",[778,13156,13157,13160,13161,13164],{},[604,13158,13159],{},"mettre en pratique"," cette séparation en fournissant ",[604,13162,13163],{},"plusieurs codes\npossibles pour un même contrat"," — l'exemple canonique de la file FIFO\nimplémentée par tableau puis par deux piles (TA04) ;",[778,13166,13167,13170],{},[604,13168,13169],{},"manipuler les structures linéaires"," : listes, piles (LIFO), files (FIFO),\ndictionnaires (TA03) ;",[778,13172,13173,13176],{},[604,13174,13175],{},"mesurer un arbre binaire"," : taille, hauteur, encadrement asymptotique (TA01) ;",[778,13178,13179,13182],{},[604,13180,13181],{},"représenter un graphe"," par matrice d'adjacence ou liste de successeurs, et\npasser d'une représentation à l'autre (TA02).",[3009,13184,13187],{"icon":13185,"title":13186},"i-lucide-check","Pré-requis",[600,13188,13189],{},"Les bases Python de Première (listes, dictionnaires, fonctions) sont supposées\nacquises. Le chapitre PC (types construits) et PH (algorithmique de Première)\nsont des appuis utiles.",[595,13191,13192],{"id":644},"Plan",[3021,13194,13195,13203,13209,13214,13219],{},[778,13196,13197,13199,13200,13202],{},[604,13198,457],{}," — TA04 + TA05 — classes, attributs, méthodes,\n",[623,13201,813],{},", encapsulation, et la distinction interface \u002F implémentation, posées\nd'un seul tenant sur un exemple de compte bancaire.",[778,13204,13205,13208],{},[604,13206,13207],{},"Implémenter une structure — la file FIFO"," — TA04 — application directe :\nune même file codée par un tableau puis par deux piles, complexité amortie.",[778,13210,13211,13213],{},[604,13212,465],{}," — TA03 — les structures linéaires\ncanoniques, caractérisées par leurs méthodes.",[778,13215,13216,13218],{},[604,13217,469],{}," — TA01 — vocabulaire, mesures, encadrement de la hauteur.",[778,13220,13221,13223],{},[604,13222,473],{}," — TA02 — sommets, arêtes, orienté ou non, matrice d'adjacence et\nliste de successeurs.",[600,13225,13226,13227,13230],{},"À la fin du chapitre, une fiche mémo synthétique consolide les notions et\npropose une auto-évaluation. La source MDC d'évaluation notée\n(",[623,13228,13229],{},"chapitre.eval.md",") prépare le DS de fin de séquence.",{"title":697,"searchDepth":719,"depth":719,"links":13232},[13233,13234],{"id":13131,"depth":719,"text":13132},{"id":644,"depth":719,"text":13192},"Spécifier, choisir et implémenter les structures qui organisent les données — du tableau à l'arbre, en passant par les graphes.",{"icon":13237},"i-lucide-network",[],{"title":451,"description":13235},"72nynxtuAhIaQoUZ96G-5VH236J9OeBmvqb2ftqwjxk",[13242,13669,14355,14813,16280,17173],{"id":13243,"title":13244,"bo":13245,"body":13246,"description":13662,"eval":1925,"extension":1926,"labo":1925,"meta":13663,"navigation":1933,"path":13664,"quizzes":13665,"readingTime":704,"seo":13666,"stem":13667,"tp":1925,"__hash__":13668},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation.memo.md","Objet, classe, interface — l'essentiel",[589,590],{"type":592,"value":13247,"toc":13655},[13248,13252,13257,13261,13333,13337,13421,13425,13453,13457,13652],[595,13249,13251],{"id":13250},"en-une-phrase","En une phrase",[600,13253,13254],{},[604,13255,13256],{},"Une classe regroupe un état (attributs) et un comportement (méthodes) ; son interface est le contrat qu'elle expose, son implémentation est le code qui le réalise — l'utilisateur d'une classe dépend de l'interface, jamais de l'implémentation.",[595,13258,13260],{"id":13259},"à-mémoriser","À mémoriser",[775,13262,13263,13272,13281,13292,13299,13305,13311,13319],{},[778,13264,13265,13268,13269,13271],{},[604,13266,13267],{},"Classe"," = plan, ",[604,13270,660],{}," = instance concrète issue de ce plan.",[778,13273,13274,13277,13278,13280],{},[604,13275,13276],{},"Attribut"," = variable d'objet ; ",[604,13279,969],{}," = fonction d'objet.",[778,13282,13283,13287,13288,13291],{},[604,13284,13285],{},[623,13286,801],{}," = constructeur appelé à la création (",[623,13289,13290],{},"Classe(...)"," → objet).",[778,13293,13294,13298],{},[604,13295,13296],{},[623,13297,813],{}," = objet courant, premier paramètre implicite de toute méthode d'instance.",[778,13300,13301,13304],{},[604,13302,13303],{},"Interface"," = ensemble des méthodes publiques avec leur signature et leur sémantique.",[778,13306,13307,13310],{},[604,13308,13309],{},"Implémentation"," = représentation interne en mémoire + code des méthodes.",[778,13312,13313,13316,13317,794],{},[604,13314,13315],{},"Encapsulation"," = on accède aux données via les méthodes, jamais directement aux attributs internes (préfixe ",[623,13318,1632],{},[778,13320,13321,13322,13325,13326,1967,13329,13332],{},"Chaque objet a ",[604,13323,13324],{},"ses propres"," attributs — ",[623,13327,13328],{},"c1",[623,13330,13331],{},"c2"," n'interfèrent pas.",[595,13334,13336],{"id":13335},"à-savoir-reconnaître","À savoir reconnaître",[1260,13338,13339,13349],{},[1263,13340,13341],{},[1266,13342,13343,13346],{},[1269,13344,13345],{},"Syntaxe \u002F situation",[1269,13347,13348],{},"Sens",[1276,13350,13351,13361,13370,13380,13390,13399,13408],{},[1266,13352,13353,13358],{},[1281,13354,13355],{},[623,13356,13357],{},"class CompteBancaire:",[1281,13359,13360],{},"définition d'une classe",[1266,13362,13363,13368],{},[1281,13364,13365],{},[623,13366,13367],{},"def __init__(self, ...):",[1281,13369,805],{},[1266,13371,13372,13377],{},[1281,13373,13374],{},[623,13375,13376],{},"self._solde = 0",[1281,13378,13379],{},"initialisation d'un attribut interne",[1266,13381,13382,13387],{},[1281,13383,13384],{},[623,13385,13386],{},"def deposer(self, x):",[1281,13388,13389],{},"définition d'une méthode",[1266,13391,13392,13396],{},[1281,13393,13394],{},[623,13395,942],{},[1281,13397,13398],{},"création d'un objet",[1266,13400,13401,13405],{},[1281,13402,13403],{},[623,13404,1170],{},[1281,13406,13407],{},"appel d'une méthode",[1266,13409,13410,13415],{},[1281,13411,13412,13413],{},"Le code accède à ",[623,13414,1677],{},[1281,13416,13417,13418,1185],{},"viole l'encapsulation — utiliser ",[623,13419,13420],{},"c.consulter()",[595,13422,13424],{"id":13423},"pièges-courants","Pièges courants",[775,13426,13427,13433,13436,13443],{},[778,13428,13429,13430,13432],{},"Oublier ",[623,13431,813],{}," en premier paramètre d'une méthode.",[778,13434,13435],{},"Croire que deux objets d'une même classe partagent leurs attributs.",[778,13437,13438,13439,13442],{},"Accéder à ",[623,13440,13441],{},"obj._attribut"," depuis l'extérieur — brise l'abstraction.",[778,13444,13445,13446,13449,13450,794],{},"Confondre interface (le ",[604,13447,13448],{},"quoi",") et implémentation (le ",[604,13451,13452],{},"comment",[595,13454,13456],{"id":13455},"syntaxe-python","Syntaxe Python",[692,13458,13460],{"className":694,"code":13459,"language":696,"meta":697,"style":697},"class CompteBancaire:\n    def __init__(self, solde_initial=0):\n        self._solde = solde_initial\n\n    def deposer(self, montant):\n        if montant \u003C= 0:\n            raise ValueError(\"montant invalide\")\n        self._solde += montant\n\n    def retirer(self, montant):\n        if montant \u003C= 0 or montant > self._solde:\n            raise ValueError(\"retrait invalide\")\n        self._solde -= montant\n\n    def consulter(self):\n        return self._solde\n\nc = CompteBancaire(100)\nc.deposer(50)\nprint(c.consulter())   # 150\n",[623,13461,13462,13470,13484,13494,13498,13506,13518,13531,13542,13546,13554,13575,13588,13599,13603,13611,13619,13623,13635,13643],{"__ignoreMap":697},[701,13463,13464,13466,13468],{"class":703,"line":704},[701,13465,708],{"class":707},[701,13467,712],{"class":711},[701,13469,716],{"class":715},[701,13471,13472,13474,13476,13478,13480,13482],{"class":703,"line":719},[701,13473,736],{"class":707},[701,13475,740],{"class":739},[701,13477,743],{"class":715},[701,13479,746],{"class":707},[701,13481,749],{"class":739},[701,13483,752],{"class":715},[701,13485,13486,13488,13490,13492],{"class":703,"line":726},[701,13487,758],{"class":739},[701,13489,1441],{"class":715},[701,13491,746],{"class":707},[701,13493,1018],{"class":715},[701,13495,13496],{"class":703,"line":733},[701,13497,730],{"emptyLinePlaceholder":729},[701,13499,13500,13502,13504],{"class":703,"line":755},[701,13501,736],{"class":707},[701,13503,1029],{"class":711},[701,13505,1032],{"class":715},[701,13507,13508,13510,13512,13514,13516],{"class":703,"line":1035},[701,13509,1466],{"class":707},[701,13511,1469],{"class":715},[701,13513,1472],{"class":707},[701,13515,1475],{"class":739},[701,13517,716],{"class":715},[701,13519,13520,13522,13524,13526,13529],{"class":703,"line":1055},[701,13521,1482],{"class":707},[701,13523,1485],{"class":739},[701,13525,1488],{"class":715},[701,13527,13528],{"class":722},"\"montant invalide\"",[701,13530,894],{"class":715},[701,13532,13533,13535,13537,13540],{"class":703,"line":1060},[701,13534,758],{"class":739},[701,13536,1441],{"class":715},[701,13538,13539],{"class":707},"+=",[701,13541,1052],{"class":715},[701,13543,13544],{"class":703,"line":1070},[701,13545,730],{"emptyLinePlaceholder":729},[701,13547,13548,13550,13552],{"class":703,"line":1088},[701,13549,736],{"class":707},[701,13551,1065],{"class":711},[701,13553,1032],{"class":715},[701,13555,13556,13558,13560,13562,13564,13567,13569,13571,13573],{"class":703,"line":1093},[701,13557,1466],{"class":707},[701,13559,1469],{"class":715},[701,13561,1472],{"class":707},[701,13563,1475],{"class":739},[701,13565,13566],{"class":707}," or",[701,13568,1469],{"class":715},[701,13570,1555],{"class":707},[701,13572,1044],{"class":739},[701,13574,1560],{"class":715},[701,13576,13577,13579,13581,13583,13586],{"class":703,"line":1104},[701,13578,1482],{"class":707},[701,13580,1485],{"class":739},[701,13582,1488],{"class":715},[701,13584,13585],{"class":722},"\"retrait invalide\"",[701,13587,894],{"class":715},[701,13589,13590,13592,13594,13597],{"class":703,"line":1548},[701,13591,758],{"class":739},[701,13593,1441],{"class":715},[701,13595,13596],{"class":707},"-=",[701,13598,1052],{"class":715},[701,13600,13601],{"class":703,"line":1563},[701,13602,730],{"emptyLinePlaceholder":729},[701,13604,13605,13607,13609],{"class":703,"line":1577},[701,13606,736],{"class":707},[701,13608,1098],{"class":711},[701,13610,1101],{"class":715},[701,13612,13613,13615,13617],{"class":703,"line":1594},[701,13614,1107],{"class":707},[701,13616,1044],{"class":739},[701,13618,1615],{"class":715},[701,13620,13621],{"class":703,"line":1599},[701,13622,730],{"emptyLinePlaceholder":729},[701,13624,13625,13627,13629,13631,13633],{"class":703,"line":1608},[701,13626,839],{"class":715},[701,13628,746],{"class":707},[701,13630,844],{"class":715},[701,13632,847],{"class":739},[701,13634,894],{"class":715},[701,13636,13637,13639,13641],{"class":703,"line":2310},[701,13638,1140],{"class":715},[701,13640,906],{"class":739},[701,13642,894],{"class":715},[701,13644,13645,13647,13649],{"class":703,"line":2786},[701,13646,858],{"class":739},[701,13648,1161],{"class":715},[701,13650,13651],{"class":769},"# 150\n",[1912,13653,13654],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":13656},[13657,13658,13659,13660,13661],{"id":13250,"depth":719,"text":13251},{"id":13259,"depth":719,"text":13260},{"id":13335,"depth":719,"text":13336},{"id":13423,"depth":719,"text":13424},{"id":13455,"depth":719,"text":13456},"Mémo de révision sur la POO de base et la distinction interface \u002F implémentation.",{},"\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation.memo",[],{"title":13244,"description":13662},"2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation.memo","ODQqZlj8yGCmsCBhG9q-u7xduLUXPyqvwgYLSlZ34dc",{"id":13670,"title":13671,"bo":13672,"body":13673,"description":14348,"eval":1925,"extension":1926,"labo":1925,"meta":14349,"navigation":1933,"path":14350,"quizzes":14351,"readingTime":704,"seo":14352,"stem":14353,"tp":1925,"__hash__":14354},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure.memo.md","Implémenter une file FIFO — l'essentiel",[589],{"type":592,"value":13674,"toc":14341},[13675,13677,13780,13782,13975,13977,14123,14125,14145,14147,14338],[595,13676,13251],{"id":13250},[600,13678,13679],{},[604,13680,13681,13682,1720,13684,1720,13686,1720,13689,13691,13692,13735,13736,13779],{},"Une même interface (file FIFO : ",[623,13683,1775],{},[623,13685,1779],{},[623,13687,13688],{},"est_vide",[623,13690,5478],{},") admet plusieurs implémentations — par liste Python (",[701,13693,13695,13714],{"className":13694},[2415],[701,13696,13698],{"className":13697},[2419],[2421,13699,13700],{"xmlns":2423},[2425,13701,13702,13712],{},[2428,13703,13704,13706,13708,13710],{},[2431,13705,2434],{"mathvariant":2433},[2436,13707,1488],{"stretchy":2438},[2431,13709,2512],{},[2436,13711,2444],{"stretchy":2438},[2446,13713,2517],{"encoding":2448},[701,13715,13717],{"className":13716,"ariaHidden":2454},[2453],[701,13718,13720,13723,13726,13729,13732],{"className":13719},[2458],[701,13721],{"className":13722,"style":2463},[2462],[701,13724,2434],{"className":13725,"style":2469},[2467,2468],[701,13727,1488],{"className":13728},[2473],[701,13730,2512],{"className":13731},[2467,2536],[701,13733,2444],{"className":13734},[2480]," à defiler) ou par deux piles (",[701,13737,13739,13758],{"className":13738},[2415],[701,13740,13742],{"className":13741},[2419],[2421,13743,13744],{"xmlns":2423},[2425,13745,13746,13756],{},[2428,13747,13748,13750,13752,13754],{},[2431,13749,2434],{"mathvariant":2433},[2436,13751,1488],{"stretchy":2438},[2440,13753,932],{},[2436,13755,2444],{"stretchy":2438},[2446,13757,2449],{"encoding":2448},[701,13759,13761],{"className":13760,"ariaHidden":2454},[2453],[701,13762,13764,13767,13770,13773,13776],{"className":13763},[2458],[701,13765],{"className":13766,"style":2463},[2462],[701,13768,2434],{"className":13769,"style":2469},[2467,2468],[701,13771,1488],{"className":13772},[2473],[701,13774,932],{"className":13775},[2467],[701,13777,2444],{"className":13778},[2480]," amorti).",[595,13781,13260],{"id":13259},[775,13783,13784,13791,13804,13858,13870,13919],{},[778,13785,13786,3971,13788,13790],{},[604,13787,2006],{},[787,13789,2010],{}," — analogie de la file d'attente.",[778,13792,13793,13795,13796,1720,13798,1720,13800,1720,13802,1185],{},[604,13794,13303],{}," d'une file : ",[623,13797,2036],{},[623,13799,2055],{},[623,13801,2070],{},[623,13803,2093],{},[778,13805,13806,13807,1715,13810,13813,13814,13857],{},"Implémentation ",[604,13808,13809],{},"par liste",[623,13811,13812],{},"pop(0)"," est en ",[701,13815,13817,13836],{"className":13816},[2415],[701,13818,13820],{"className":13819},[2419],[2421,13821,13822],{"xmlns":2423},[2425,13823,13824,13834],{},[2428,13825,13826,13828,13830,13832],{},[2431,13827,2434],{"mathvariant":2433},[2436,13829,1488],{"stretchy":2438},[2431,13831,2512],{},[2436,13833,2444],{"stretchy":2438},[2446,13835,2517],{"encoding":2448},[701,13837,13839],{"className":13838,"ariaHidden":2454},[2453],[701,13840,13842,13845,13848,13851,13854],{"className":13841},[2458],[701,13843],{"className":13844,"style":2463},[2462],[701,13846,2434],{"className":13847,"style":2469},[2467,2468],[701,13849,1488],{"className":13850},[2473],[701,13852,2512],{"className":13853},[2467,2536],[701,13855,2444],{"className":13856},[2480]," — décalage de tous les éléments.",[778,13859,13806,13860,13863,13864,13866,13867,13869],{},[604,13861,13862],{},"par deux piles"," : pile entrée pour les ",[623,13865,1775],{},", pile sortie pour les ",[623,13868,1779],{}," ; transvasement quand la sortie est vide.",[778,13871,13872,13918],{},[604,13873,13874,13875],{},"Coût amorti ",[701,13876,13878,13897],{"className":13877},[2415],[701,13879,13881],{"className":13880},[2419],[2421,13882,13883],{"xmlns":2423},[2425,13884,13885,13895],{},[2428,13886,13887,13889,13891,13893],{},[2431,13888,2434],{"mathvariant":2433},[2436,13890,1488],{"stretchy":2438},[2440,13892,932],{},[2436,13894,2444],{"stretchy":2438},[2446,13896,2449],{"encoding":2448},[701,13898,13900],{"className":13899,"ariaHidden":2454},[2453],[701,13901,13903,13906,13909,13912,13915],{"className":13902},[2458],[701,13904],{"className":13905,"style":2463},[2462],[701,13907,2434],{"className":13908,"style":2469},[2467,2468],[701,13910,1488],{"className":13911},[2473],[701,13913,932],{"className":13914},[2467],[701,13916,2444],{"className":13917},[2480]," : chaque élément subit au plus 4 manipulations de pile sur toute sa vie.",[778,13920,13921,13922,790,13924,13926,13927,13930,13931,13974],{},"En pratique : ",[623,13923,3669],{},[623,13925,3028],{}," \u002F ",[623,13928,13929],{},"popleft",") — implémenté en C, ",[701,13932,13934,13953],{"className":13933},[2415],[701,13935,13937],{"className":13936},[2419],[2421,13938,13939],{"xmlns":2423},[2425,13940,13941,13951],{},[2428,13942,13943,13945,13947,13949],{},[2431,13944,2434],{"mathvariant":2433},[2436,13946,1488],{"stretchy":2438},[2440,13948,932],{},[2436,13950,2444],{"stretchy":2438},[2446,13952,2449],{"encoding":2448},[701,13954,13956],{"className":13955,"ariaHidden":2454},[2453],[701,13957,13959,13962,13965,13968,13971],{"className":13958},[2458],[701,13960],{"className":13961,"style":2463},[2462],[701,13963,2434],{"className":13964,"style":2469},[2467,2468],[701,13966,1488],{"className":13967},[2473],[701,13969,932],{"className":13970},[2467],[701,13972,2444],{"className":13973},[2480]," aux deux bouts.",[595,13976,13336],{"id":13335},[1260,13978,13979,13989],{},[1263,13980,13981],{},[1266,13982,13983,13986],{},[1269,13984,13985],{},"Situation",[1269,13987,13988],{},"Action",[1276,13990,13991,14003,14058,14112],{},[1266,13992,13993,13998],{},[1281,13994,13995,13996],{},"Code qui accède à ",[623,13997,3280],{},[1281,13999,14000,14001],{},"viole l'abstraction — utiliser ",[623,14002,3218],{},[1266,14004,14005,14053],{},[1281,14006,14007,4573,14009,14052],{},[623,14008,1779],{},[701,14010,14012,14031],{"className":14011},[2415],[701,14013,14015],{"className":14014},[2419],[2421,14016,14017],{"xmlns":2423},[2425,14018,14019,14029],{},[2428,14020,14021,14023,14025,14027],{},[2431,14022,2434],{"mathvariant":2433},[2436,14024,1488],{"stretchy":2438},[2431,14026,2512],{},[2436,14028,2444],{"stretchy":2438},[2446,14030,2517],{"encoding":2448},[701,14032,14034],{"className":14033,"ariaHidden":2454},[2453],[701,14035,14037,14040,14043,14046,14049],{"className":14036},[2458],[701,14038],{"className":14039,"style":2463},[2462],[701,14041,2434],{"className":14042,"style":2469},[2467,2468],[701,14044,1488],{"className":14045},[2473],[701,14047,2512],{"className":14048},[2467,2536],[701,14050,2444],{"className":14051},[2480]," par appel",[1281,14054,14055,14056],{},"implémentation par liste avec ",[623,14057,13812],{},[1266,14059,14060,14107],{},[1281,14061,14062,4573,14064,3370],{},[623,14063,1779],{},[701,14065,14067,14086],{"className":14066},[2415],[701,14068,14070],{"className":14069},[2419],[2421,14071,14072],{"xmlns":2423},[2425,14073,14074,14084],{},[2428,14075,14076,14078,14080,14082],{},[2431,14077,2434],{"mathvariant":2433},[2436,14079,1488],{"stretchy":2438},[2440,14081,932],{},[2436,14083,2444],{"stretchy":2438},[2446,14085,2449],{"encoding":2448},[701,14087,14089],{"className":14088,"ariaHidden":2454},[2453],[701,14090,14092,14095,14098,14101,14104],{"className":14091},[2458],[701,14093],{"className":14094,"style":2463},[2462],[701,14096,2434],{"className":14097,"style":2469},[2467,2468],[701,14099,1488],{"className":14100},[2473],[701,14102,932],{"className":14103},[2467],[701,14105,2444],{"className":14106},[2480],[1281,14108,14109,14110],{},"implémentation par deux piles ou ",[623,14111,4904],{},[1266,14113,14114,14117],{},[1281,14115,14116],{},"Transvasement entrée → sortie",[1281,14118,14119,14120,14122],{},"uniquement quand ",[623,14121,3052],{}," est vide",[595,14124,13424],{"id":13423},[775,14126,14127,14130,14133,14139],{},[778,14128,14129],{},"Confondre interface (quoi) et implémentation (comment).",[778,14131,14132],{},"Croire qu'une seule implémentation est « la bonne ».",[778,14134,14135,14136,14138],{},"Oublier que ",[623,14137,13812],{}," d'une liste Python est linéaire.",[778,14140,14141,14142,14144],{},"Transvaser à chaque ",[623,14143,1779],{}," au lieu d'attendre que la sortie soit vide.",[595,14146,13456],{"id":13455},[692,14148,14150],{"className":694,"code":14149,"language":696,"meta":697,"style":697},"class FileDeuxPiles:\n    def __init__(self):\n        self._entree, self._sortie = [], []\n\n    def enfiler(self, x):\n        self._entree.append(x)\n\n    def defiler(self):\n        if not self._sortie:\n            while self._entree:\n                self._sortie.append(self._entree.pop())\n        if not self._sortie:\n            raise IndexError(\"file vide\")\n        return self._sortie.pop()\n\n    def est_vide(self):\n        return not self._entree and not self._sortie\n\n    def taille(self):\n        return len(self._entree) + len(self._sortie)\n",[623,14151,14152,14160,14168,14184,14188,14196,14203,14207,14215,14225,14233,14243,14253,14265,14274,14278,14286,14304,14308,14316],{"__ignoreMap":697},[701,14153,14154,14156,14158],{"class":703,"line":704},[701,14155,708],{"class":707},[701,14157,2625],{"class":711},[701,14159,716],{"class":715},[701,14161,14162,14164,14166],{"class":703,"line":719},[701,14163,736],{"class":707},[701,14165,740],{"class":739},[701,14167,1101],{"class":715},[701,14169,14170,14172,14175,14177,14179,14181],{"class":703,"line":726},[701,14171,758],{"class":739},[701,14173,14174],{"class":715},"._entree, ",[701,14176,813],{"class":739},[701,14178,2666],{"class":715},[701,14180,746],{"class":707},[701,14182,14183],{"class":715}," [], []\n",[701,14185,14186],{"class":703,"line":733},[701,14187,730],{"emptyLinePlaceholder":729},[701,14189,14190,14192,14194],{"class":703,"line":755},[701,14191,736],{"class":707},[701,14193,2192],{"class":711},[701,14195,2195],{"class":715},[701,14197,14198,14200],{"class":703,"line":1035},[701,14199,758],{"class":739},[701,14201,14202],{"class":715},"._entree.append(x)\n",[701,14204,14205],{"class":703,"line":1055},[701,14206,730],{"emptyLinePlaceholder":729},[701,14208,14209,14211,14213],{"class":703,"line":1060},[701,14210,736],{"class":707},[701,14212,2216],{"class":711},[701,14214,1101],{"class":715},[701,14216,14217,14219,14221,14223],{"class":703,"line":1070},[701,14218,1466],{"class":707},[701,14220,2225],{"class":707},[701,14222,1044],{"class":739},[701,14224,2715],{"class":715},[701,14226,14227,14229,14231],{"class":703,"line":1088},[701,14228,2720],{"class":707},[701,14230,1044],{"class":739},[701,14232,2725],{"class":715},[701,14234,14235,14237,14239,14241],{"class":703,"line":1093},[701,14236,2730],{"class":739},[701,14238,2733],{"class":715},[701,14240,813],{"class":739},[701,14242,2738],{"class":715},[701,14244,14245,14247,14249,14251],{"class":703,"line":1104},[701,14246,1466],{"class":707},[701,14248,2225],{"class":707},[701,14250,1044],{"class":739},[701,14252,2715],{"class":715},[701,14254,14255,14257,14259,14261,14263],{"class":703,"line":1548},[701,14256,1482],{"class":707},[701,14258,2237],{"class":739},[701,14260,1488],{"class":715},[701,14262,2242],{"class":722},[701,14264,894],{"class":715},[701,14266,14267,14269,14271],{"class":703,"line":1563},[701,14268,1107],{"class":707},[701,14270,1044],{"class":739},[701,14272,14273],{"class":715},"._sortie.pop()\n",[701,14275,14276],{"class":703,"line":1577},[701,14277,730],{"emptyLinePlaceholder":729},[701,14279,14280,14282,14284],{"class":703,"line":1594},[701,14281,736],{"class":707},[701,14283,2272],{"class":711},[701,14285,1101],{"class":715},[701,14287,14288,14290,14292,14294,14296,14298,14300,14302],{"class":703,"line":1599},[701,14289,1107],{"class":707},[701,14291,2225],{"class":707},[701,14293,1044],{"class":739},[701,14295,2651],{"class":715},[701,14297,2797],{"class":707},[701,14299,2225],{"class":707},[701,14301,1044],{"class":739},[701,14303,2804],{"class":715},[701,14305,14306],{"class":703,"line":1608},[701,14307,730],{"emptyLinePlaceholder":729},[701,14309,14310,14312,14314],{"class":703,"line":2310},[701,14311,736],{"class":707},[701,14313,2305],{"class":711},[701,14315,1101],{"class":715},[701,14317,14318,14320,14322,14324,14326,14328,14330,14332,14334,14336],{"class":703,"line":2786},[701,14319,1107],{"class":707},[701,14321,2281],{"class":739},[701,14323,1488],{"class":715},[701,14325,813],{"class":739},[701,14327,2832],{"class":715},[701,14329,1049],{"class":707},[701,14331,2281],{"class":739},[701,14333,1488],{"class":715},[701,14335,813],{"class":739},[701,14337,2843],{"class":715},[1912,14339,14340],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":14342},[14343,14344,14345,14346,14347],{"id":13250,"depth":719,"text":13251},{"id":13259,"depth":719,"text":13260},{"id":13335,"depth":719,"text":13336},{"id":13423,"depth":719,"text":13424},{"id":13455,"depth":719,"text":13456},"Mémo de révision sur les deux implémentations canoniques d'une file et leur complexité.",{},"\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure.memo",[],{"title":13671,"description":14348},"2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure.memo","_vDPXTFt6FUoLovq2gj5VZHIjXrPBomGiXV57SdLnb0",{"id":14356,"title":14357,"bo":14358,"body":14359,"description":14806,"eval":1925,"extension":1926,"labo":1925,"meta":14807,"navigation":1933,"path":14808,"quizzes":14809,"readingTime":704,"seo":14810,"stem":14811,"tp":1925,"__hash__":14812},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict.memo.md","Structures linéaires — l'essentiel",[3815],{"type":592,"value":14360,"toc":14799},[14361,14363,14368,14370,14501,14503,14544,14546,14651,14653,14796],[595,14362,13251],{"id":13250},[600,14364,14365],{},[604,14366,14367],{},"On distingue les structures par le jeu de leurs méthodes : pile = LIFO, file = FIFO, dictionnaire = accès par clé, liste = accès par index.",[595,14369,13260],{"id":13259},[775,14371,14372,14384,14395,14450],{},[778,14373,14374,1715,14377,1720,14379,1720,14381,14383],{},[604,14375,14376],{},"Pile (LIFO)",[623,14378,3912],{},[623,14380,3915],{},[623,14382,3918],{}," — opérations toutes au sommet.",[778,14385,14386,1715,14389,14391,14392,14394],{},[604,14387,14388],{},"File (FIFO)",[623,14390,1775],{}," (en queue), ",[623,14393,1779],{}," (en tête).",[778,14396,14397,1715,14399,1720,14401,1720,14403,14405,14406,14449],{},[604,14398,3944],{},[623,14400,3955],{},[623,14402,3958],{},[623,14404,3964],{}," — recherche ",[701,14407,14409,14428],{"className":14408},[2415],[701,14410,14412],{"className":14411},[2419],[2421,14413,14414],{"xmlns":2423},[2425,14415,14416,14426],{},[2428,14417,14418,14420,14422,14424],{},[2431,14419,2434],{"mathvariant":2433},[2436,14421,1488],{"stretchy":2438},[2440,14423,932],{},[2436,14425,2444],{"stretchy":2438},[2446,14427,2449],{"encoding":2448},[701,14429,14431],{"className":14430,"ariaHidden":2454},[2453],[701,14432,14434,14437,14440,14443,14446],{"className":14433},[2458],[701,14435],{"className":14436,"style":2463},[2462],[701,14438,2434],{"className":14439,"style":2469},[2467,2468],[701,14441,1488],{"className":14442},[2473],[701,14444,932],{"className":14445},[2467],[701,14447,2444],{"className":14448},[2480]," moyen.",[778,14451,14452,14454,14455,14457,14458,1185],{},[604,14453,3872],{}," : accès par index ",[623,14456,3878],{},", recherche ",[701,14459,14461,14480],{"className":14460},[2415],[701,14462,14464],{"className":14463},[2419],[2421,14465,14466],{"xmlns":2423},[2425,14467,14468,14478],{},[2428,14469,14470,14472,14474,14476],{},[2431,14471,2434],{"mathvariant":2433},[2436,14473,1488],{"stretchy":2438},[2431,14475,2512],{},[2436,14477,2444],{"stretchy":2438},[2446,14479,2517],{"encoding":2448},[701,14481,14483],{"className":14482,"ariaHidden":2454},[2453],[701,14484,14486,14489,14492,14495,14498],{"className":14485},[2458],[701,14487],{"className":14488,"style":2463},[2462],[701,14490,2434],{"className":14491,"style":2469},[2467,2468],[701,14493,1488],{"className":14494},[2473],[701,14496,2512],{"className":14497},[2467,2536],[701,14499,2444],{"className":14500},[2480],[595,14502,13336],{"id":13335},[1260,14504,14505,14514],{},[1263,14506,14507],{},[1266,14508,14509,14512],{},[1269,14510,14511],{},"Besoin",[1269,14513,3854],{},[1276,14515,14516,14523,14530,14537],{},[1266,14517,14518,14521],{},[1281,14519,14520],{},"Annuler la dernière action (undo)",[1281,14522,4770],{},[1266,14524,14525,14528],{},[1281,14526,14527],{},"File d'impression, BFS",[1281,14529,1998],{},[1266,14531,14532,14535],{},[1281,14533,14534],{},"Lookup rapide par identifiant",[1281,14536,4773],{},[1266,14538,14539,14542],{},[1281,14540,14541],{},"Parcours ordonné par position",[1281,14543,4767],{},[595,14545,13424],{"id":13423},[775,14547,14548,14645,14648],{},[778,14549,14550,14551,14553,14554,14597,14598,14601,14602,1185],{},"Utiliser ",[623,14552,13812],{}," sur une liste pour défiler — ",[701,14555,14557,14576],{"className":14556},[2415],[701,14558,14560],{"className":14559},[2419],[2421,14561,14562],{"xmlns":2423},[2425,14563,14564,14574],{},[2428,14565,14566,14568,14570,14572],{},[2431,14567,2434],{"mathvariant":2433},[2436,14569,1488],{"stretchy":2438},[2431,14571,2512],{},[2436,14573,2444],{"stretchy":2438},[2446,14575,2517],{"encoding":2448},[701,14577,14579],{"className":14578,"ariaHidden":2454},[2453],[701,14580,14582,14585,14588,14591,14594],{"className":14581},[2458],[701,14583],{"className":14584,"style":2463},[2462],[701,14586,2434],{"className":14587,"style":2469},[2467,2468],[701,14589,1488],{"className":14590},[2473],[701,14592,2512],{"className":14593},[2467,2536],[701,14595,2444],{"className":14596},[2480]," alors que ",[623,14599,14600],{},"deque.popleft()"," est ",[701,14603,14605,14624],{"className":14604},[2415],[701,14606,14608],{"className":14607},[2419],[2421,14609,14610],{"xmlns":2423},[2425,14611,14612,14622],{},[2428,14613,14614,14616,14618,14620],{},[2431,14615,2434],{"mathvariant":2433},[2436,14617,1488],{"stretchy":2438},[2440,14619,932],{},[2436,14621,2444],{"stretchy":2438},[2446,14623,2449],{"encoding":2448},[701,14625,14627],{"className":14626,"ariaHidden":2454},[2453],[701,14628,14630,14633,14636,14639,14642],{"className":14629},[2458],[701,14631],{"className":14632,"style":2463},[2462],[701,14634,2434],{"className":14635,"style":2469},[2467,2468],[701,14637,1488],{"className":14638},[2473],[701,14640,932],{"className":14641},[2467],[701,14643,2444],{"className":14644},[2480],[778,14646,14647],{},"Confondre pile et file (LIFO vs FIFO).",[778,14649,14650],{},"Croire que la recherche dans un dict est triée — elle ne l'est pas.",[595,14652,13456],{"id":13455},[692,14654,14656],{"className":694,"code":14655,"language":696,"meta":697,"style":697},"# pile\np = []\np.append(1); p.append(2)\np.pop()              # 2 (LIFO)\n\n# file\nfrom collections import deque\nf = deque()\nf.append(1); f.append(2)\nf.popleft()          # 1 (FIFO)\n\n# dict\nd = {\"a\": 1, \"b\": 2}\nd[\"a\"]; \"c\" in d\n",[623,14657,14658,14663,14672,14686,14694,14698,14703,14713,14721,14734,14742,14746,14751,14778],{"__ignoreMap":697},[701,14659,14660],{"class":703,"line":704},[701,14661,14662],{"class":769},"# pile\n",[701,14664,14665,14668,14670],{"class":703,"line":719},[701,14666,14667],{"class":715},"p ",[701,14669,746],{"class":707},[701,14671,2181],{"class":715},[701,14673,14674,14677,14679,14682,14684],{"class":703,"line":726},[701,14675,14676],{"class":715},"p.append(",[701,14678,932],{"class":739},[701,14680,14681],{"class":715},"); p.append(",[701,14683,2355],{"class":739},[701,14685,894],{"class":715},[701,14687,14688,14691],{"class":703,"line":733},[701,14689,14690],{"class":715},"p.pop()              ",[701,14692,14693],{"class":769},"# 2 (LIFO)\n",[701,14695,14696],{"class":703,"line":755},[701,14697,730],{"emptyLinePlaceholder":729},[701,14699,14700],{"class":703,"line":1035},[701,14701,14702],{"class":769},"# file\n",[701,14704,14705,14707,14709,14711],{"class":703,"line":1055},[701,14706,3732],{"class":707},[701,14708,3735],{"class":715},[701,14710,3738],{"class":707},[701,14712,3741],{"class":715},[701,14714,14715,14717,14719],{"class":703,"line":1060},[701,14716,2334],{"class":715},[701,14718,746],{"class":707},[701,14720,3750],{"class":715},[701,14722,14723,14725,14727,14730,14732],{"class":703,"line":1070},[701,14724,3755],{"class":715},[701,14726,932],{"class":739},[701,14728,14729],{"class":715},"); f.append(",[701,14731,2355],{"class":739},[701,14733,894],{"class":715},[701,14735,14736,14739],{"class":703,"line":1088},[701,14737,14738],{"class":715},"f.popleft()          ",[701,14740,14741],{"class":769},"# 1 (FIFO)\n",[701,14743,14744],{"class":703,"line":1093},[701,14745,730],{"emptyLinePlaceholder":729},[701,14747,14748],{"class":703,"line":1104},[701,14749,14750],{"class":769},"# dict\n",[701,14752,14753,14756,14758,14760,14763,14765,14767,14769,14772,14774,14776],{"class":703,"line":1548},[701,14754,14755],{"class":715},"d ",[701,14757,746],{"class":707},[701,14759,4422],{"class":715},[701,14761,14762],{"class":722},"\"a\"",[701,14764,4428],{"class":715},[701,14766,932],{"class":739},[701,14768,1720],{"class":715},[701,14770,14771],{"class":722},"\"b\"",[701,14773,4428],{"class":715},[701,14775,2355],{"class":739},[701,14777,4454],{"class":715},[701,14779,14780,14783,14785,14788,14791,14793],{"class":703,"line":1563},[701,14781,14782],{"class":715},"d[",[701,14784,14762],{"class":722},[701,14786,14787],{"class":715},"]; ",[701,14789,14790],{"class":722},"\"c\"",[701,14792,4492],{"class":707},[701,14794,14795],{"class":715}," d\n",[1912,14797,14798],{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":14800},[14801,14802,14803,14804,14805],{"id":13250,"depth":719,"text":13251},{"id":13259,"depth":719,"text":13260},{"id":13335,"depth":719,"text":13336},{"id":13423,"depth":719,"text":13424},{"id":13455,"depth":719,"text":13456},"Mémo de révision sur listes, piles, files, dictionnaires.",{},"\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict.memo",[],{"title":14357,"description":14806},"2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict.memo","REP8z9wZ_WFEOSoAfMRtk3MznL9RblVU0OknW7kT8rM",{"id":14814,"title":14815,"bo":14816,"body":14817,"description":16273,"eval":1925,"extension":1926,"labo":1925,"meta":16274,"navigation":1933,"path":16275,"quizzes":16276,"readingTime":704,"seo":16277,"stem":16278,"tp":1925,"__hash__":16279},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires.memo.md","Arbres binaires — l'essentiel",[4940],{"type":592,"value":14818,"toc":16266},[14819,14821,15045,15047,15781,15783,16102,16104,16119,16121,16263],[595,14820,13251],{"id":13250},[600,14822,14823],{},[604,14824,14825,14826,14854,14855,14883,14884,1185],{},"Un arbre binaire est une structure hiérarchique où chaque nœud a au plus deux enfants ; sa hauteur ",[701,14827,14829,14842],{"className":14828},[2415],[701,14830,14832],{"className":14831},[2419],[2421,14833,14834],{"xmlns":2423},[2425,14835,14836,14840],{},[2428,14837,14838],{},[2431,14839,4694],{},[2446,14841,4694],{"encoding":2448},[701,14843,14845],{"className":14844,"ariaHidden":2454},[2453],[701,14846,14848,14851],{"className":14847},[2458],[701,14849],{"className":14850,"style":2970},[2462],[701,14852,4694],{"className":14853},[2467,2536]," et sa taille ",[701,14856,14858,14871],{"className":14857},[2415],[701,14859,14861],{"className":14860},[2419],[2421,14862,14863],{"xmlns":2423},[2425,14864,14865,14869],{},[2428,14866,14867],{},[2431,14868,2512],{},[2446,14870,2512],{"encoding":2448},[701,14872,14874],{"className":14873,"ariaHidden":2454},[2453],[701,14875,14877,14880],{"className":14876},[2458],[701,14878],{"className":14879,"style":2566},[2462],[701,14881,2512],{"className":14882},[2467,2536]," sont liées par ",[701,14885,14887,14926],{"className":14886},[2415],[701,14888,14890],{"className":14889},[2419],[2421,14891,14892],{"xmlns":2423},[2425,14893,14894,14924],{},[2428,14895,14896,14898,14900,14902,14904,14906,14908,14920,14922],{},[2431,14897,4694],{},[2436,14899,1049],{},[2440,14901,932],{},[2436,14903,6956],{},[2431,14905,2512],{},[2436,14907,6956],{},[7158,14909,14910,14912],{},[2440,14911,2355],{},[2428,14913,14914,14916,14918],{},[2431,14915,4694],{},[2436,14917,1049],{},[2440,14919,932],{},[2436,14921,6075],{},[2440,14923,932],{},[2446,14925,7176],{"encoding":2448},[701,14927,14929,14947,14965,14983,15036],{"className":14928,"ariaHidden":2454},[2453],[701,14930,14932,14935,14938,14941,14944],{"className":14931},[2458],[701,14933],{"className":14934,"style":7186},[2462],[701,14936,4694],{"className":14937},[2467,2536],[701,14939],{"className":14940,"style":5745},[4680],[701,14942,1049],{"className":14943},[5749],[701,14945],{"className":14946,"style":5745},[4680],[701,14948,14950,14953,14956,14959,14962],{"className":14949},[2458],[701,14951],{"className":14952,"style":7068},[2462],[701,14954,932],{"className":14955},[2467],[701,14957],{"className":14958,"style":5190},[4680],[701,14960,6956],{"className":14961},[5194],[701,14963],{"className":14964,"style":5190},[4680],[701,14966,14968,14971,14974,14977,14980],{"className":14967},[2458],[701,14969],{"className":14970,"style":7223},[2462],[701,14972,2512],{"className":14973},[2467,2536],[701,14975],{"className":14976,"style":5190},[4680],[701,14978,6956],{"className":14979},[5194],[701,14981],{"className":14982,"style":5190},[4680],[701,14984,14986,14989,15027,15030,15033],{"className":14985},[2458],[701,14987],{"className":14988,"style":7242},[2462],[701,14990,14992,14995],{"className":14991},[2467],[701,14993,2355],{"className":14994},[2467],[701,14996,14998],{"className":14997},[5771],[701,14999,15001],{"className":15000},[5705],[701,15002,15004],{"className":15003},[5710],[701,15005,15007],{"className":15006,"style":7261},[5714],[701,15008,15009,15012],{"style":7264},[701,15010],{"className":15011,"style":5788},[5722],[701,15013,15015],{"className":15014},[5792,5793,5794,5795],[701,15016,15018,15021,15024],{"className":15017},[2467,5795],[701,15019,4694],{"className":15020},[2467,2536,5795],[701,15022,1049],{"className":15023},[5749,5795],[701,15025,932],{"className":15026},[2467,5795],[701,15028],{"className":15029,"style":5745},[4680],[701,15031,6075],{"className":15032},[5749],[701,15034],{"className":15035,"style":5745},[4680],[701,15037,15039,15042],{"className":15038},[2458],[701,15040],{"className":15041,"style":5204},[2462],[701,15043,932],{"className":15044},[2467],[595,15046,13260],{"id":13259},[775,15048,15049,15058,15122,15182,15549],{},[778,15050,15051,15053,15054,15057],{},[604,15052,5011],{}," = nœud sans parent ; ",[604,15055,15056],{},"feuille"," = nœud sans enfant.",[778,15059,15060,3180,15062,15090,15091,3180,15093,15121],{},[604,15061,5061],{},[701,15063,15065,15078],{"className":15064},[2415],[701,15066,15068],{"className":15067},[2419],[2421,15069,15070],{"xmlns":2423},[2425,15071,15072,15076],{},[2428,15073,15074],{},[2431,15075,2512],{},[2446,15077,2512],{"encoding":2448},[701,15079,15081],{"className":15080,"ariaHidden":2454},[2453],[701,15082,15084,15087],{"className":15083},[2458],[701,15085],{"className":15086,"style":2566},[2462],[701,15088,2512],{"className":15089},[2467,2536]," = nombre de nœuds ; ",[604,15092,6017],{},[701,15094,15096,15109],{"className":15095},[2415],[701,15097,15099],{"className":15098},[2419],[2421,15100,15101],{"xmlns":2423},[2425,15102,15103,15107],{},[2428,15104,15105],{},[2431,15106,4694],{},[2446,15108,4694],{"encoding":2448},[701,15110,15112],{"className":15111,"ariaHidden":2454},[2453],[701,15113,15115,15118],{"className":15114},[2458],[701,15116],{"className":15117,"style":2970},[2462],[701,15119,4694],{"className":15120},[2467,2536]," = longueur du plus long chemin racine → feuille (en arêtes).",[778,15123,15124,15125,15181],{},"Convention : arbre vide → ",[701,15126,15128,15148],{"className":15127},[2415],[701,15129,15131],{"className":15130},[2419],[2421,15132,15133],{"xmlns":2423},[2425,15134,15135,15145],{},[2428,15136,15137,15139,15141,15143],{},[2431,15138,4694],{},[2436,15140,746],{},[2436,15142,6075],{},[2440,15144,932],{},[2446,15146,15147],{"encoding":2448},"h = -1",[701,15149,15151,15169],{"className":15150,"ariaHidden":2454},[2453],[701,15152,15154,15157,15160,15163,15166],{"className":15153},[2458],[701,15155],{"className":15156,"style":2970},[2462],[701,15158,4694],{"className":15159},[2467,2536],[701,15161],{"className":15162,"style":5190},[4680],[701,15164,746],{"className":15165},[5194],[701,15167],{"className":15168,"style":5190},[4680],[701,15170,15172,15175,15178],{"className":15171},[2458],[701,15173],{"className":15174,"style":6559},[2462],[701,15176,6075],{"className":15177},[2467],[701,15179,932],{"className":15180},[2467],", taille = 0.",[778,15183,15184,1715,15187,15348,15349,1185],{},[604,15185,15186],{},"Encadrement",[701,15188,15190,15229],{"className":15189},[2415],[701,15191,15193],{"className":15192},[2419],[2421,15194,15195],{"xmlns":2423},[2425,15196,15197,15227],{},[2428,15198,15199,15201,15203,15205,15207,15209,15211,15223,15225],{},[2431,15200,4694],{},[2436,15202,1049],{},[2440,15204,932],{},[2436,15206,6956],{},[2431,15208,2512],{},[2436,15210,6956],{},[7158,15212,15213,15215],{},[2440,15214,2355],{},[2428,15216,15217,15219,15221],{},[2431,15218,4694],{},[2436,15220,1049],{},[2440,15222,932],{},[2436,15224,6075],{},[2440,15226,932],{},[2446,15228,7176],{"encoding":2448},[701,15230,15232,15250,15268,15286,15339],{"className":15231,"ariaHidden":2454},[2453],[701,15233,15235,15238,15241,15244,15247],{"className":15234},[2458],[701,15236],{"className":15237,"style":7186},[2462],[701,15239,4694],{"className":15240},[2467,2536],[701,15242],{"className":15243,"style":5745},[4680],[701,15245,1049],{"className":15246},[5749],[701,15248],{"className":15249,"style":5745},[4680],[701,15251,15253,15256,15259,15262,15265],{"className":15252},[2458],[701,15254],{"className":15255,"style":7068},[2462],[701,15257,932],{"className":15258},[2467],[701,15260],{"className":15261,"style":5190},[4680],[701,15263,6956],{"className":15264},[5194],[701,15266],{"className":15267,"style":5190},[4680],[701,15269,15271,15274,15277,15280,15283],{"className":15270},[2458],[701,15272],{"className":15273,"style":7223},[2462],[701,15275,2512],{"className":15276},[2467,2536],[701,15278],{"className":15279,"style":5190},[4680],[701,15281,6956],{"className":15282},[5194],[701,15284],{"className":15285,"style":5190},[4680],[701,15287,15289,15292,15330,15333,15336],{"className":15288},[2458],[701,15290],{"className":15291,"style":7242},[2462],[701,15293,15295,15298],{"className":15294},[2467],[701,15296,2355],{"className":15297},[2467],[701,15299,15301],{"className":15300},[5771],[701,15302,15304],{"className":15303},[5705],[701,15305,15307],{"className":15306},[5710],[701,15308,15310],{"className":15309,"style":7261},[5714],[701,15311,15312,15315],{"style":7264},[701,15313],{"className":15314,"style":5788},[5722],[701,15316,15318],{"className":15317},[5792,5793,5794,5795],[701,15319,15321,15324,15327],{"className":15320},[2467,5795],[701,15322,4694],{"className":15323},[2467,2536,5795],[701,15325,1049],{"className":15326},[5749,5795],[701,15328,932],{"className":15329},[2467,5795],[701,15331],{"className":15332,"style":5745},[4680],[701,15334,6075],{"className":15335},[5749],[701,15337],{"className":15338,"style":5745},[4680],[701,15340,15342,15345],{"className":15341},[2458],[701,15343],{"className":15344,"style":5204},[2462],[701,15346,932],{"className":15347},[2467],", ou ",[701,15350,15352,15399],{"className":15351},[2415],[701,15353,15355],{"className":15354},[2419],[2421,15356,15357],{"xmlns":2423},[2425,15358,15359,15397],{},[2428,15360,15361,15371,15373,15375,15377,15379,15381,15383,15385,15387,15389,15391,15393,15395],{},[5591,15362,15363,15369],{},[2428,15364,15365,15367],{},[2431,15366,6935],{},[2436,15368,6107],{},[2440,15370,2355],{},[2436,15372,1488],{"stretchy":2438},[2431,15374,2512],{},[2436,15376,1049],{},[2440,15378,932],{},[2436,15380,2444],{"stretchy":2438},[2436,15382,6075],{},[2440,15384,932],{},[2436,15386,6956],{},[2431,15388,4694],{},[2436,15390,6956],{},[2431,15392,2512],{},[2436,15394,6075],{},[2440,15396,932],{},[2446,15398,6969],{"encoding":2448},[701,15400,15402,15465,15486,15504,15522,15540],{"className":15401,"ariaHidden":2454},[2453],[701,15403,15405,15408,15450,15453,15456,15459,15462],{"className":15404},[2458],[701,15406],{"className":15407,"style":2463},[2462],[701,15409,15411,15416],{"className":15410},[6279],[701,15412,6985,15414],{"className":15413},[6279],[701,15415,5597],{"style":6988},[701,15417,15419],{"className":15418},[5771],[701,15420,15422,15442],{"className":15421},[5705,5706],[701,15423,15425,15439],{"className":15424},[5710],[701,15426,15428],{"className":15427,"style":7001},[5714],[701,15429,15430,15433],{"style":7004},[701,15431],{"className":15432,"style":5788},[5722],[701,15434,15436],{"className":15435},[5792,5793,5794,5795],[701,15437,2355],{"className":15438},[2467,5795],[701,15440,5804],{"className":15441},[5803],[701,15443,15445],{"className":15444},[5710],[701,15446,15448],{"className":15447,"style":7023},[5714],[701,15449],{},[701,15451,1488],{"className":15452},[2473],[701,15454,2512],{"className":15455},[2467,2536],[701,15457],{"className":15458,"style":5745},[4680],[701,15460,1049],{"className":15461},[5749],[701,15463],{"className":15464,"style":5745},[4680],[701,15466,15468,15471,15474,15477,15480,15483],{"className":15467},[2458],[701,15469],{"className":15470,"style":2463},[2462],[701,15472,932],{"className":15473},[2467],[701,15475,2444],{"className":15476},[2480],[701,15478],{"className":15479,"style":5745},[4680],[701,15481,6075],{"className":15482},[5749],[701,15484],{"className":15485,"style":5745},[4680],[701,15487,15489,15492,15495,15498,15501],{"className":15488},[2458],[701,15490],{"className":15491,"style":7068},[2462],[701,15493,932],{"className":15494},[2467],[701,15496],{"className":15497,"style":5190},[4680],[701,15499,6956],{"className":15500},[5194],[701,15502],{"className":15503,"style":5190},[4680],[701,15505,15507,15510,15513,15516,15519],{"className":15506},[2458],[701,15508],{"className":15509,"style":7087},[2462],[701,15511,4694],{"className":15512},[2467,2536],[701,15514],{"className":15515,"style":5190},[4680],[701,15517,6956],{"className":15518},[5194],[701,15520],{"className":15521,"style":5190},[4680],[701,15523,15525,15528,15531,15534,15537],{"className":15524},[2458],[701,15526],{"className":15527,"style":7106},[2462],[701,15529,2512],{"className":15530},[2467,2536],[701,15532],{"className":15533,"style":5745},[4680],[701,15535,6075],{"className":15536},[5749],[701,15538],{"className":15539,"style":5745},[4680],[701,15541,15543,15546],{"className":15542},[2458],[701,15544],{"className":15545,"style":5204},[2462],[701,15547,932],{"className":15548},[2467],[778,15550,15551,15552,15624,15625,1185],{},"Cas filiforme : ",[701,15553,15555,15576],{"className":15554},[2415],[701,15556,15558],{"className":15557},[2419],[2421,15559,15560],{"xmlns":2423},[2425,15561,15562,15574],{},[2428,15563,15564,15566,15568,15570,15572],{},[2431,15565,4694],{},[2436,15567,746],{},[2431,15569,2512],{},[2436,15571,6075],{},[2440,15573,932],{},[2446,15575,9487],{"encoding":2448},[701,15577,15579,15597,15615],{"className":15578,"ariaHidden":2454},[2453],[701,15580,15582,15585,15588,15591,15594],{"className":15581},[2458],[701,15583],{"className":15584,"style":2970},[2462],[701,15586,4694],{"className":15587},[2467,2536],[701,15589],{"className":15590,"style":5190},[4680],[701,15592,746],{"className":15593},[5194],[701,15595],{"className":15596,"style":5190},[4680],[701,15598,15600,15603,15606,15609,15612],{"className":15599},[2458],[701,15601],{"className":15602,"style":7106},[2462],[701,15604,2512],{"className":15605},[2467,2536],[701,15607],{"className":15608,"style":5745},[4680],[701,15610,6075],{"className":15611},[5749],[701,15613],{"className":15614,"style":5745},[4680],[701,15616,15618,15621],{"className":15617},[2458],[701,15619],{"className":15620,"style":5204},[2462],[701,15622,932],{"className":15623},[2467]," ; cas parfait : ",[701,15626,15628,15667],{"className":15627},[2415],[701,15629,15631],{"className":15630},[2419],[2421,15632,15633],{"xmlns":2423},[2425,15634,15635,15665],{},[2428,15636,15637,15639,15641,15651,15653,15655,15657,15659,15661,15663],{},[2431,15638,4694],{},[2436,15640,746],{},[5591,15642,15643,15649],{},[2428,15644,15645,15647],{},[2431,15646,6935],{},[2436,15648,6107],{},[2440,15650,2355],{},[2436,15652,1488],{"stretchy":2438},[2431,15654,2512],{},[2436,15656,1049],{},[2440,15658,932],{},[2436,15660,2444],{"stretchy":2438},[2436,15662,6075],{},[2440,15664,932],{},[2446,15666,9702],{"encoding":2448},[701,15668,15670,15688,15751,15772],{"className":15669,"ariaHidden":2454},[2453],[701,15671,15673,15676,15679,15682,15685],{"className":15672},[2458],[701,15674],{"className":15675,"style":2970},[2462],[701,15677,4694],{"className":15678},[2467,2536],[701,15680],{"className":15681,"style":5190},[4680],[701,15683,746],{"className":15684},[5194],[701,15686],{"className":15687,"style":5190},[4680],[701,15689,15691,15694,15736,15739,15742,15745,15748],{"className":15690},[2458],[701,15692],{"className":15693,"style":2463},[2462],[701,15695,15697,15702],{"className":15696},[6279],[701,15698,6985,15700],{"className":15699},[6279],[701,15701,5597],{"style":6988},[701,15703,15705],{"className":15704},[5771],[701,15706,15708,15728],{"className":15707},[5705,5706],[701,15709,15711,15725],{"className":15710},[5710],[701,15712,15714],{"className":15713,"style":7001},[5714],[701,15715,15716,15719],{"style":7004},[701,15717],{"className":15718,"style":5788},[5722],[701,15720,15722],{"className":15721},[5792,5793,5794,5795],[701,15723,2355],{"className":15724},[2467,5795],[701,15726,5804],{"className":15727},[5803],[701,15729,15731],{"className":15730},[5710],[701,15732,15734],{"className":15733,"style":7023},[5714],[701,15735],{},[701,15737,1488],{"className":15738},[2473],[701,15740,2512],{"className":15741},[2467,2536],[701,15743],{"className":15744,"style":5745},[4680],[701,15746,1049],{"className":15747},[5749],[701,15749],{"className":15750,"style":5745},[4680],[701,15752,15754,15757,15760,15763,15766,15769],{"className":15753},[2458],[701,15755],{"className":15756,"style":2463},[2462],[701,15758,932],{"className":15759},[2467],[701,15761,2444],{"className":15762},[2480],[701,15764],{"className":15765,"style":5745},[4680],[701,15767,6075],{"className":15768},[5749],[701,15770],{"className":15771,"style":5745},[4680],[701,15773,15775,15778],{"className":15774},[2458],[701,15776],{"className":15777,"style":5204},[2462],[701,15779,932],{"className":15780},[2467],[595,15782,13336],{"id":13335},[1260,15784,15785,15823],{},[1263,15786,15787],{},[1266,15788,15789,15792],{},[1269,15790,15791],{},"Forme",[1269,15793,15794,15795],{},"Hauteur en fonction de ",[701,15796,15798,15811],{"className":15797},[2415],[701,15799,15801],{"className":15800},[2419],[2421,15802,15803],{"xmlns":2423},[2425,15804,15805,15809],{},[2428,15806,15807],{},[2431,15808,2512],{},[2446,15810,2512],{"encoding":2448},[701,15812,15814],{"className":15813,"ariaHidden":2454},[2453],[701,15815,15817,15820],{"className":15816},[2458],[701,15818],{"className":15819,"style":2566},[2462],[701,15821,2512],{"className":15822},[2467,2536],[1276,15824,15825,15904,16018],{},[1266,15826,15827,15830],{},[1281,15828,15829],{},"Filiforme (peigne)",[1281,15831,15832],{},[701,15833,15835,15856],{"className":15834},[2415],[701,15836,15838],{"className":15837},[2419],[2421,15839,15840],{"xmlns":2423},[2425,15841,15842,15854],{},[2428,15843,15844,15846,15848,15850,15852],{},[2431,15845,4694],{},[2436,15847,746],{},[2431,15849,2512],{},[2436,15851,6075],{},[2440,15853,932],{},[2446,15855,9487],{"encoding":2448},[701,15857,15859,15877,15895],{"className":15858,"ariaHidden":2454},[2453],[701,15860,15862,15865,15868,15871,15874],{"className":15861},[2458],[701,15863],{"className":15864,"style":2970},[2462],[701,15866,4694],{"className":15867},[2467,2536],[701,15869],{"className":15870,"style":5190},[4680],[701,15872,746],{"className":15873},[5194],[701,15875],{"className":15876,"style":5190},[4680],[701,15878,15880,15883,15886,15889,15892],{"className":15879},[2458],[701,15881],{"className":15882,"style":7106},[2462],[701,15884,2512],{"className":15885},[2467,2536],[701,15887],{"className":15888,"style":5745},[4680],[701,15890,6075],{"className":15891},[5749],[701,15893],{"className":15894,"style":5745},[4680],[701,15896,15898,15901],{"className":15897},[2458],[701,15899],{"className":15900,"style":5204},[2462],[701,15902,932],{"className":15903},[2467],[1266,15905,15906,15909],{},[1281,15907,15908],{},"Parfaitement équilibré",[1281,15910,15911],{},[701,15912,15914,15942],{"className":15913},[2415],[701,15915,15917],{"className":15916},[2419],[2421,15918,15919],{"xmlns":2423},[2425,15920,15921,15939],{},[2428,15922,15923,15925,15927,15937],{},[2431,15924,4694],{},[2436,15926,12470],{},[5591,15928,15929,15935],{},[2428,15930,15931,15933],{},[2431,15932,6935],{},[2436,15934,6107],{},[2440,15936,2355],{},[2431,15938,2512],{},[2446,15940,15941],{"encoding":2448},"h \\approx \\log_2 n",[701,15943,15945,15963],{"className":15944,"ariaHidden":2454},[2453],[701,15946,15948,15951,15954,15957,15960],{"className":15947},[2458],[701,15949],{"className":15950,"style":2970},[2462],[701,15952,4694],{"className":15953},[2467,2536],[701,15955],{"className":15956,"style":5190},[4680],[701,15958,12470],{"className":15959},[5194],[701,15961],{"className":15962,"style":5190},[4680],[701,15964,15966,15970,16012,16015],{"className":15965},[2458],[701,15967],{"className":15968,"style":15969},[2462],"height:0.9386em;vertical-align:-0.2441em;",[701,15971,15973,15978],{"className":15972},[6279],[701,15974,6985,15976],{"className":15975},[6279],[701,15977,5597],{"style":6988},[701,15979,15981],{"className":15980},[5771],[701,15982,15984,16004],{"className":15983},[5705,5706],[701,15985,15987,16001],{"className":15986},[5710],[701,15988,15990],{"className":15989,"style":7001},[5714],[701,15991,15992,15995],{"style":7004},[701,15993],{"className":15994,"style":5788},[5722],[701,15996,15998],{"className":15997},[5792,5793,5794,5795],[701,15999,2355],{"className":16000},[2467,5795],[701,16002,5804],{"className":16003},[5803],[701,16005,16007],{"className":16006},[5710],[701,16008,16010],{"className":16009,"style":7023},[5714],[701,16011],{},[701,16013],{"className":16014,"style":6342},[4680],[701,16016,2512],{"className":16017},[2467,2536],[1266,16019,16020,16023],{},[1281,16021,16022],{},"Quelconque équilibré",[1281,16024,16025],{},[701,16026,16028,16055],{"className":16027},[2415],[701,16029,16031],{"className":16030},[2419],[2421,16032,16033],{"xmlns":2423},[2425,16034,16035,16053],{},[2428,16036,16037,16039,16041,16043,16045,16047,16049,16051],{},[2431,16038,4694],{},[2436,16040,9834],{},[2431,16042,2434],{"mathvariant":2433},[2436,16044,1488],{"stretchy":2438},[2431,16046,6935],{},[2436,16048,6107],{},[2431,16050,2512],{},[2436,16052,2444],{"stretchy":2438},[2446,16054,9849],{"encoding":2448},[701,16056,16058,16076],{"className":16057,"ariaHidden":2454},[2453],[701,16059,16061,16064,16067,16070,16073],{"className":16060},[2458],[701,16062],{"className":16063,"style":9859},[2462],[701,16065,4694],{"className":16066},[2467,2536],[701,16068],{"className":16069,"style":5190},[4680],[701,16071,9834],{"className":16072},[5194],[701,16074],{"className":16075,"style":5190},[4680],[701,16077,16079,16082,16085,16088,16093,16096,16099],{"className":16078},[2458],[701,16080],{"className":16081,"style":2463},[2462],[701,16083,2434],{"className":16084,"style":2469},[2467,2468],[701,16086,1488],{"className":16087},[2473],[701,16089,6985,16091],{"className":16090},[6279],[701,16092,5597],{"style":6988},[701,16094],{"className":16095,"style":6342},[4680],[701,16097,2512],{"className":16098},[2467,2536],[701,16100,2444],{"className":16101},[2480],[595,16103,13424],{"id":13423},[775,16105,16106,16109,16116],{},[778,16107,16108],{},"Confondre hauteur en arêtes et en niveaux.",[778,16110,16111,16112,4840,16114,1185],{},"Oublier le cas vide dans la définition récursive de ",[623,16113,5478],{},[623,16115,6017],{},[778,16117,16118],{},"Croire qu'un arbre binaire est forcément équilibré.",[595,16120,13456],{"id":13455},[692,16122,16124],{"className":694,"code":16123,"language":696,"meta":697,"style":697},"class Noeud:\n    def __init__(self, valeur, gauche=None, droite=None):\n        self.valeur, self.gauche, self.droite = valeur, gauche, droite\n\ndef taille(n):\n    if n is None: return 0\n    return 1 + taille(n.gauche) + taille(n.droite)\n\ndef hauteur(n):\n    if n is None: return -1\n    return 1 + max(hauteur(n.gauche), hauteur(n.droite))\n",[623,16125,16126,16134,16154,16175,16179,16187,16204,16220,16224,16232,16250],{"__ignoreMap":697},[701,16127,16128,16130,16132],{"class":703,"line":704},[701,16129,708],{"class":707},[701,16131,5281],{"class":711},[701,16133,716],{"class":715},[701,16135,16136,16138,16140,16142,16144,16146,16148,16150,16152],{"class":703,"line":719},[701,16137,736],{"class":707},[701,16139,740],{"class":739},[701,16141,5301],{"class":715},[701,16143,746],{"class":707},[701,16145,5269],{"class":739},[701,16147,5308],{"class":715},[701,16149,746],{"class":707},[701,16151,5269],{"class":739},[701,16153,752],{"class":715},[701,16155,16156,16158,16161,16163,16166,16168,16170,16172],{"class":703,"line":726},[701,16157,758],{"class":739},[701,16159,16160],{"class":715},".valeur, ",[701,16162,813],{"class":739},[701,16164,16165],{"class":715},".gauche, ",[701,16167,813],{"class":739},[701,16169,5345],{"class":715},[701,16171,746],{"class":707},[701,16173,16174],{"class":715}," valeur, gauche, droite\n",[701,16176,16177],{"class":703,"line":733},[701,16178,730],{"emptyLinePlaceholder":729},[701,16180,16181,16183,16185],{"class":703,"line":755},[701,16182,3238],{"class":707},[701,16184,2305],{"class":711},[701,16186,12719],{"class":715},[701,16188,16189,16191,16193,16195,16197,16199,16202],{"class":703,"line":1035},[701,16190,5980],{"class":707},[701,16192,11651],{"class":715},[701,16194,5374],{"class":707},[701,16196,5377],{"class":739},[701,16198,4428],{"class":715},[701,16200,16201],{"class":707},"return",[701,16203,2294],{"class":739},[701,16205,16206,16208,16210,16212,16215,16217],{"class":703,"line":1055},[701,16207,6000],{"class":707},[701,16209,6003],{"class":739},[701,16211,6006],{"class":707},[701,16213,16214],{"class":715}," taille(n.gauche) ",[701,16216,1049],{"class":707},[701,16218,16219],{"class":715}," taille(n.droite)\n",[701,16221,16222],{"class":703,"line":1060},[701,16223,730],{"emptyLinePlaceholder":729},[701,16225,16226,16228,16230],{"class":703,"line":1070},[701,16227,3238],{"class":707},[701,16229,6691],{"class":711},[701,16231,12719],{"class":715},[701,16233,16234,16236,16238,16240,16242,16244,16246,16248],{"class":703,"line":1088},[701,16235,5980],{"class":707},[701,16237,11651],{"class":715},[701,16239,5374],{"class":707},[701,16241,5377],{"class":739},[701,16243,4428],{"class":715},[701,16245,16201],{"class":707},[701,16247,6712],{"class":707},[701,16249,6715],{"class":739},[701,16251,16252,16254,16256,16258,16260],{"class":703,"line":1093},[701,16253,6000],{"class":707},[701,16255,6003],{"class":739},[701,16257,6006],{"class":707},[701,16259,6726],{"class":739},[701,16261,16262],{"class":715},"(hauteur(n.gauche), hauteur(n.droite))\n",[1912,16264,16265],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":16267},[16268,16269,16270,16271,16272],{"id":13250,"depth":719,"text":13251},{"id":13259,"depth":719,"text":13260},{"id":13335,"depth":719,"text":13336},{"id":13423,"depth":719,"text":13424},{"id":13455,"depth":719,"text":13456},"Mémo de révision sur le vocabulaire, les mesures et l'encadrement de la hauteur.",{},"\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires.memo",[],{"title":14815,"description":16273},"2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires.memo","ztZnJEcPgrCVKqDRlDm9M7Q2AbUA1oAJZEY0gXGKHvs",{"id":16281,"title":16282,"bo":16283,"body":16284,"description":17166,"eval":1925,"extension":1926,"labo":1925,"meta":17167,"navigation":1933,"path":17168,"quizzes":17169,"readingTime":704,"seo":17170,"stem":17171,"tp":1925,"__hash__":17172},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes.memo.md","Graphes — l'essentiel",[10171],{"type":592,"value":16285,"toc":17159},[16286,16288,16433,16435,16821,16823,17003,17005,17016,17018,17156],[595,16287,13251],{"id":13250},[600,16289,16290],{},[604,16291,16292,16293,16366,16367,794],{},"Un graphe modélise des relations entre sommets ; il se représente soit par une matrice d'adjacence (",[701,16294,16296,16319],{"className":16295},[2415],[701,16297,16299],{"className":16298},[2419],[2421,16300,16301],{"xmlns":2423},[2425,16302,16303,16317],{},[2428,16304,16305,16307,16309,16315],{},[2431,16306,2434],{"mathvariant":2433},[2436,16308,1488],{"stretchy":2438},[7158,16310,16311,16313],{},[2431,16312,2512],{},[2440,16314,2355],{},[2436,16316,2444],{"stretchy":2438},[2446,16318,11827],{"encoding":2448},[701,16320,16322],{"className":16321,"ariaHidden":2454},[2453],[701,16323,16325,16328,16331,16334,16363],{"className":16324},[2458],[701,16326],{"className":16327,"style":11837},[2462],[701,16329,2434],{"className":16330,"style":2469},[2467,2468],[701,16332,1488],{"className":16333},[2473],[701,16335,16337,16340],{"className":16336},[2467],[701,16338,2512],{"className":16339},[2467,2536],[701,16341,16343],{"className":16342},[5771],[701,16344,16346],{"className":16345},[5705],[701,16347,16349],{"className":16348},[5710],[701,16350,16352],{"className":16351,"style":11862},[5714],[701,16353,16354,16357],{"style":7264},[701,16355],{"className":16356,"style":5788},[5722],[701,16358,16360],{"className":16359},[5792,5793,5794,5795],[701,16361,2355],{"className":16362},[2467,5795],[701,16364,2444],{"className":16365},[2480]," d'espace), soit par une liste de successeurs (",[701,16368,16370,16394],{"className":16369},[2415],[701,16371,16373],{"className":16372},[2419],[2421,16374,16375],{"xmlns":2423},[2425,16376,16377,16391],{},[2428,16378,16379,16381,16383,16385,16387,16389],{},[2431,16380,2434],{"mathvariant":2433},[2436,16382,1488],{"stretchy":2438},[2431,16384,2512],{},[2436,16386,1049],{},[2431,16388,4685],{},[2436,16390,2444],{"stretchy":2438},[2446,16392,16393],{"encoding":2448},"\\mathcal{O}(n+m)",[701,16395,16397,16421],{"className":16396,"ariaHidden":2454},[2453],[701,16398,16400,16403,16406,16409,16412,16415,16418],{"className":16399},[2458],[701,16401],{"className":16402,"style":2463},[2462],[701,16404,2434],{"className":16405,"style":2469},[2467,2468],[701,16407,1488],{"className":16408},[2473],[701,16410,2512],{"className":16411},[2467,2536],[701,16413],{"className":16414,"style":5745},[4680],[701,16416,1049],{"className":16417},[5749],[701,16419],{"className":16420,"style":5745},[4680],[701,16422,16424,16427,16430],{"className":16423},[2458],[701,16425],{"className":16426,"style":2463},[2462],[701,16428,4685],{"className":16429},[2467,2536],[701,16431,2444],{"className":16432},[2480],[595,16434,13260],{"id":13259},[775,16436,16437,16555,16670,16754,16818],{},[778,16438,16439,16441,16442,16445,16446,16498,16499,16502,16503,794],{},[604,16440,10245],{}," (nœud), ",[604,16443,16444],{},"arête"," (non orientée, ",[701,16447,16449,16471],{"className":16448},[2415],[701,16450,16452],{"className":16451},[2419],[2421,16453,16454],{"xmlns":2423},[2425,16455,16456,16468],{},[2428,16457,16458,16460,16462,16464,16466],{},[2436,16459,5529],{"stretchy":2438},[2431,16461,6041],{},[2436,16463,6138],{"separator":2454},[2431,16465,10283],{},[2436,16467,1848],{"stretchy":2438},[2446,16469,16470],{"encoding":2448},"\\{u,v\\}",[701,16472,16474],{"className":16473,"ariaHidden":2454},[2453],[701,16475,16477,16480,16483,16486,16489,16492,16495],{"className":16476},[2458],[701,16478],{"className":16479,"style":2463},[2462],[701,16481,5529],{"className":16482},[2473],[701,16484,6041],{"className":16485},[2467,2536],[701,16487,6138],{"className":16488},[6338],[701,16490],{"className":16491,"style":6342},[4680],[701,16493,10283],{"className":16494,"style":5799},[2467,2536],[701,16496,1848],{"className":16497},[2480],"), ",[604,16500,16501],{},"arc"," (orienté, ",[701,16504,16506,16528],{"className":16505},[2415],[701,16507,16509],{"className":16508},[2419],[2421,16510,16511],{"xmlns":2423},[2425,16512,16513,16525],{},[2428,16514,16515,16517,16519,16521,16523],{},[2436,16516,1488],{"stretchy":2438},[2431,16518,6041],{},[2436,16520,6138],{"separator":2454},[2431,16522,10283],{},[2436,16524,2444],{"stretchy":2438},[2446,16526,16527],{"encoding":2448},"(u,v)",[701,16529,16531],{"className":16530,"ariaHidden":2454},[2453],[701,16532,16534,16537,16540,16543,16546,16549,16552],{"className":16533},[2458],[701,16535],{"className":16536,"style":2463},[2462],[701,16538,1488],{"className":16539},[2473],[701,16541,6041],{"className":16542},[2467,2536],[701,16544,6138],{"className":16545},[6338],[701,16547],{"className":16548,"style":6342},[4680],[701,16550,10283],{"className":16551,"style":5799},[2467,2536],[701,16553,2444],{"className":16554},[2480],[778,16556,16557,3042,16560,16588,16589,16617,16618,16669],{},[604,16558,16559],{},"Successeurs",[701,16561,16563,16576],{"className":16562},[2415],[701,16564,16566],{"className":16565},[2419],[2421,16567,16568],{"xmlns":2423},[2425,16569,16570,16574],{},[2428,16571,16572],{},[2431,16573,6041],{},[2446,16575,6041],{"encoding":2448},[701,16577,16579],{"className":16578,"ariaHidden":2454},[2453],[701,16580,16582,16585],{"className":16581},[2458],[701,16583],{"className":16584,"style":2566},[2462],[701,16586,6041],{"className":16587},[2467,2536]," = sommets ",[701,16590,16592,16605],{"className":16591},[2415],[701,16593,16595],{"className":16594},[2419],[2421,16596,16597],{"xmlns":2423},[2425,16598,16599,16603],{},[2428,16600,16601],{},[2431,16602,10283],{},[2446,16604,10283],{"encoding":2448},[701,16606,16608],{"className":16607,"ariaHidden":2454},[2453],[701,16609,16611,16614],{"className":16610},[2458],[701,16612],{"className":16613,"style":2566},[2462],[701,16615,10283],{"className":16616,"style":5799},[2467,2536]," tels que ",[701,16619,16621,16642],{"className":16620},[2415],[701,16622,16624],{"className":16623},[2419],[2421,16625,16626],{"xmlns":2423},[2425,16627,16628,16640],{},[2428,16629,16630,16632,16634,16636,16638],{},[2436,16631,1488],{"stretchy":2438},[2431,16633,6041],{},[2436,16635,6138],{"separator":2454},[2431,16637,10283],{},[2436,16639,2444],{"stretchy":2438},[2446,16641,10353],{"encoding":2448},[701,16643,16645],{"className":16644,"ariaHidden":2454},[2453],[701,16646,16648,16651,16654,16657,16660,16663,16666],{"className":16647},[2458],[701,16649],{"className":16650,"style":2463},[2462],[701,16652,1488],{"className":16653},[2473],[701,16655,6041],{"className":16656},[2467,2536],[701,16658,6138],{"className":16659},[6338],[701,16661],{"className":16662,"style":6342},[4680],[701,16664,10283],{"className":16665,"style":5799},[2467,2536],[701,16667,2444],{"className":16668},[2480]," existe.",[778,16671,16672,16588,16675,16617,16703,16669],{},[604,16673,16674],{},"Prédécesseurs",[701,16676,16678,16691],{"className":16677},[2415],[701,16679,16681],{"className":16680},[2419],[2421,16682,16683],{"xmlns":2423},[2425,16684,16685,16689],{},[2428,16686,16687],{},[2431,16688,10283],{},[2446,16690,10283],{"encoding":2448},[701,16692,16694],{"className":16693,"ariaHidden":2454},[2453],[701,16695,16697,16700],{"className":16696},[2458],[701,16698],{"className":16699,"style":2566},[2462],[701,16701,10283],{"className":16702,"style":5799},[2467,2536],[701,16704,16706,16727],{"className":16705},[2415],[701,16707,16709],{"className":16708},[2419],[2421,16710,16711],{"xmlns":2423},[2425,16712,16713,16725],{},[2428,16714,16715,16717,16719,16721,16723],{},[2436,16716,1488],{"stretchy":2438},[2431,16718,10283],{},[2436,16720,6138],{"separator":2454},[2431,16722,6041],{},[2436,16724,2444],{"stretchy":2438},[2446,16726,10608],{"encoding":2448},[701,16728,16730],{"className":16729,"ariaHidden":2454},[2453],[701,16731,16733,16736,16739,16742,16745,16748,16751],{"className":16732},[2458],[701,16734],{"className":16735,"style":2463},[2462],[701,16737,1488],{"className":16738},[2473],[701,16740,10283],{"className":16741,"style":5799},[2467,2536],[701,16743,6138],{"className":16744},[6338],[701,16746],{"className":16747,"style":6342},[4680],[701,16749,6041],{"className":16750},[2467,2536],[701,16752,2444],{"className":16753},[2480],[778,16755,16756,3180,16758,16786,16787,3180,16789,16817],{},[604,16757,10760],{},[701,16759,16761,16774],{"className":16760},[2415],[701,16762,16764],{"className":16763},[2419],[2421,16765,16766],{"xmlns":2423},[2425,16767,16768,16772],{},[2428,16769,16770],{},[2431,16771,2512],{},[2446,16773,2512],{"encoding":2448},[701,16775,16777],{"className":16776,"ariaHidden":2454},[2453],[701,16778,16780,16783],{"className":16779},[2458],[701,16781],{"className":16782,"style":2566},[2462],[701,16784,2512],{"className":16785},[2467,2536]," = nombre de sommets ; ",[604,16788,5478],{},[701,16790,16792,16805],{"className":16791},[2415],[701,16793,16795],{"className":16794},[2419],[2421,16796,16797],{"xmlns":2423},[2425,16798,16799,16803],{},[2428,16800,16801],{},[2431,16802,4685],{},[2446,16804,4685],{"encoding":2448},[701,16806,16808],{"className":16807,"ariaHidden":2454},[2453],[701,16809,16811,16814],{"className":16810},[2458],[701,16812],{"className":16813,"style":2566},[2462],[701,16815,4685],{"className":16816},[2467,2536]," = nombre d'arêtes\u002Farcs.",[778,16819,16820],{},"Matrice symétrique ⇔ graphe non orienté.",[595,16822,13336],{"id":13335},[1260,16824,16825,16835],{},[1263,16826,16827],{},[1266,16828,16829,16832],{},[1269,16830,16831],{},"Choix",[1269,16833,16834],{},"Représentation adaptée",[1276,16836,16837,16844,16851,16931],{},[1266,16838,16839,16842],{},[1281,16840,16841],{},"Graphe dense, tests d'adjacence",[1281,16843,11055],{},[1266,16845,16846,16849],{},[1281,16847,16848],{},"Graphe creux, parcours de voisins",[1281,16850,12641],{},[1266,16852,16853,16856],{},[1281,16854,16855],{},"Conversion matrice → liste",[1281,16857,16858],{},[701,16859,16861,16884],{"className":16860},[2415],[701,16862,16864],{"className":16863},[2419],[2421,16865,16866],{"xmlns":2423},[2425,16867,16868,16882],{},[2428,16869,16870,16872,16874,16880],{},[2431,16871,2434],{"mathvariant":2433},[2436,16873,1488],{"stretchy":2438},[7158,16875,16876,16878],{},[2431,16877,2512],{},[2440,16879,2355],{},[2436,16881,2444],{"stretchy":2438},[2446,16883,11827],{"encoding":2448},[701,16885,16887],{"className":16886,"ariaHidden":2454},[2453],[701,16888,16890,16893,16896,16899,16928],{"className":16889},[2458],[701,16891],{"className":16892,"style":11837},[2462],[701,16894,2434],{"className":16895,"style":2469},[2467,2468],[701,16897,1488],{"className":16898},[2473],[701,16900,16902,16905],{"className":16901},[2467],[701,16903,2512],{"className":16904},[2467,2536],[701,16906,16908],{"className":16907},[5771],[701,16909,16911],{"className":16910},[5705],[701,16912,16914],{"className":16913},[5710],[701,16915,16917],{"className":16916,"style":11862},[5714],[701,16918,16919,16922],{"style":7264},[701,16920],{"className":16921,"style":5788},[5722],[701,16923,16925],{"className":16924},[5792,5793,5794,5795],[701,16926,2355],{"className":16927},[2467,5795],[701,16929,2444],{"className":16930},[2480],[1266,16932,16933,16936],{},[1281,16934,16935],{},"Conversion liste → matrice",[1281,16937,16938],{},[701,16939,16941,16964],{"className":16940},[2415],[701,16942,16944],{"className":16943},[2419],[2421,16945,16946],{"xmlns":2423},[2425,16947,16948,16962],{},[2428,16949,16950,16952,16954,16956,16958,16960],{},[2431,16951,2434],{"mathvariant":2433},[2436,16953,1488],{"stretchy":2438},[2431,16955,2512],{},[2436,16957,1049],{},[2431,16959,4685],{},[2436,16961,2444],{"stretchy":2438},[2446,16963,12283],{"encoding":2448},[701,16965,16967,16991],{"className":16966,"ariaHidden":2454},[2453],[701,16968,16970,16973,16976,16979,16982,16985,16988],{"className":16969},[2458],[701,16971],{"className":16972,"style":2463},[2462],[701,16974,2434],{"className":16975,"style":2469},[2467,2468],[701,16977,1488],{"className":16978},[2473],[701,16980,2512],{"className":16981},[2467,2536],[701,16983],{"className":16984,"style":5745},[4680],[701,16986,1049],{"className":16987},[5749],[701,16989],{"className":16990,"style":5745},[4680],[701,16992,16994,16997,17000],{"className":16993},[2458],[701,16995],{"className":16996,"style":2463},[2462],[701,16998,4685],{"className":16999},[2467,2536],[701,17001,2444],{"className":17002},[2480],[595,17004,13424],{"id":13423},[775,17006,17007,17010,17013],{},[778,17008,17009],{},"Oublier la symétrie de la matrice pour un graphe non orienté.",[778,17011,17012],{},"Coder un graphe creux en matrice — gaspillage mémoire.",[778,17014,17015],{},"Confondre arête (non orientée) et arc (orienté).",[595,17017,13456],{"id":13455},[692,17019,17021],{"className":694,"code":17020,"language":696,"meta":697,"style":697},"# Matrice\nM = [[0]*n for _ in range(n)]\nM[u][v] = M[v][u] = 1   # non orienté\n\n# Liste de successeurs\nsucc = {s: [] for s in sommets}\nsucc[u].append(v)\nsucc[v].append(u)       # non orienté\n\n# Conversion\nsucc = {i: [j for j in range(n) if M[i][j]] for i in range(n)}\n",[623,17022,17023,17028,17056,17073,17077,17082,17099,17104,17112,17116,17121],{"__ignoreMap":697},[701,17024,17025],{"class":703,"line":704},[701,17026,17027],{"class":769},"# Matrice\n",[701,17029,17030,17033,17035,17037,17039,17041,17043,17046,17048,17050,17052,17054],{"class":703,"line":719},[701,17031,17032],{"class":715},"M ",[701,17034,746],{"class":707},[701,17036,11641],{"class":715},[701,17038,749],{"class":739},[701,17040,11163],{"class":715},[701,17042,11648],{"class":707},[701,17044,17045],{"class":715},"n ",[701,17047,11654],{"class":707},[701,17049,11657],{"class":715},[701,17051,11660],{"class":707},[701,17053,11663],{"class":739},[701,17055,11666],{"class":715},[701,17057,17058,17061,17063,17066,17068,17070],{"class":703,"line":726},[701,17059,17060],{"class":715},"M[u][v] ",[701,17062,746],{"class":707},[701,17064,17065],{"class":715}," M[v][u] ",[701,17067,746],{"class":707},[701,17069,6003],{"class":739},[701,17071,17072],{"class":769},"   # non orienté\n",[701,17074,17075],{"class":703,"line":733},[701,17076,730],{"emptyLinePlaceholder":729},[701,17078,17079],{"class":703,"line":755},[701,17080,17081],{"class":769},"# Liste de successeurs\n",[701,17083,17084,17087,17089,17091,17093,17095,17097],{"class":703,"line":1035},[701,17085,17086],{"class":715},"succ ",[701,17088,746],{"class":707},[701,17090,12073],{"class":715},[701,17092,11654],{"class":707},[701,17094,12078],{"class":715},[701,17096,11660],{"class":707},[701,17098,12083],{"class":715},[701,17100,17101],{"class":703,"line":1055},[701,17102,17103],{"class":715},"succ[u].append(v)\n",[701,17105,17106,17109],{"class":703,"line":1060},[701,17107,17108],{"class":715},"succ[v].append(u)       ",[701,17110,17111],{"class":769},"# non orienté\n",[701,17113,17114],{"class":703,"line":1070},[701,17115,730],{"emptyLinePlaceholder":729},[701,17117,17118],{"class":703,"line":1088},[701,17119,17120],{"class":769},"# Conversion\n",[701,17122,17123,17125,17127,17130,17132,17134,17136,17138,17141,17143,17146,17148,17150,17152,17154],{"class":703,"line":1093},[701,17124,17086],{"class":715},[701,17126,746],{"class":707},[701,17128,17129],{"class":715}," {i: [j ",[701,17131,11654],{"class":707},[701,17133,12727],{"class":715},[701,17135,11660],{"class":707},[701,17137,11663],{"class":739},[701,17139,17140],{"class":715},"(n) ",[701,17142,11780],{"class":707},[701,17144,17145],{"class":715}," M[i][j]] ",[701,17147,11654],{"class":707},[701,17149,12698],{"class":715},[701,17151,11660],{"class":707},[701,17153,11663],{"class":739},[701,17155,12705],{"class":715},[1912,17157,17158],{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":697,"searchDepth":719,"depth":719,"links":17160},[17161,17162,17163,17164,17165],{"id":13250,"depth":719,"text":13251},{"id":13259,"depth":719,"text":13260},{"id":13335,"depth":719,"text":13336},{"id":13423,"depth":719,"text":13424},{"id":13455,"depth":719,"text":13456},"Mémo de révision sur les graphes, leurs représentations et leur conversion.",{},"\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes.memo",[],{"title":16282,"description":17166},"2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes.memo","kCeb76GP__kYpSEvnw7j5nDLf-tCypKYRbrVy9PkxbI",{"id":17174,"title":17175,"bo":17176,"body":17177,"description":18723,"eval":1925,"extension":1926,"labo":1925,"meta":18724,"navigation":1933,"path":18726,"quizzes":18727,"readingTime":704,"seo":18756,"stem":18757,"tp":1925,"__hash__":18758},"coursMemo\u002F2.nsi-tale\u002Fta-structures-donnees\u002Fchapitre.memo.md","Structures de données — synthèse",[4940,10171,3815,589,590],{"type":592,"value":17178,"toc":18718},[17179,17181,17200,17306,17360,17670,17820,17823,17827,17963,17967,17991,18015,18024,18407,18415,18439,18461,18495],[595,17180,3845],{"id":3844},[600,17182,17183,17184,17186,17187,17190,17191,17193,17194,17196,17197,17199],{},"Le chapitre TA s'ouvre sur l'outillage qui structurera tout le reste : le\nmécanisme linguistique de la ",[604,17185,640],{}," en Python, et la distinction\n",[604,17188,17189],{},"interface \u002F implémentation",", posés d'un seul tenant. Vous avez intégré le\nvocabulaire — classe, objet, attribut, méthode, constructeur — appris à écrire\nle squelette d'une classe (",[623,17192,801],{},", méthodes d'instance, paramètre ",[623,17195,813],{},")\net compris pourquoi l'encapsulation protège les invariants (l'attribut interne\npréfixé ",[623,17198,1632],{},", l'accès passant par les méthodes publiques). Le programme exclut\nl'héritage et le polymorphisme : seul le triptyque définir-instancier-appeler\nest exigible.",[600,17201,17202,17203,17205,17206,17209,17210,17212,17213,17256,17257,790,17259,17302,17303,1185],{},"L'application directe est venue avec la ",[604,17204,1349],{},", structure canonique\nimplémentée de ",[604,17207,17208],{},"deux manières"," : d'abord par une liste Python (",[623,17211,13812],{}," en\n",[701,17214,17216,17235],{"className":17215},[2415],[701,17217,17219],{"className":17218},[2419],[2421,17220,17221],{"xmlns":2423},[2425,17222,17223,17233],{},[2428,17224,17225,17227,17229,17231],{},[2431,17226,2434],{"mathvariant":2433},[2436,17228,1488],{"stretchy":2438},[2431,17230,2512],{},[2436,17232,2444],{"stretchy":2438},[2446,17234,2517],{"encoding":2448},[701,17236,17238],{"className":17237,"ariaHidden":2454},[2453],[701,17239,17241,17244,17247,17250,17253],{"className":17240},[2458],[701,17242],{"className":17243,"style":2463},[2462],[701,17245,2434],{"className":17246,"style":2469},[2467,2468],[701,17248,1488],{"className":17249},[2473],[701,17251,2512],{"className":17252},[2467,2536],[701,17254,2444],{"className":17255},[2480],"), puis par ",[604,17258,2594],{},[701,17260,17262,17281],{"className":17261},[2415],[701,17263,17265],{"className":17264},[2419],[2421,17266,17267],{"xmlns":2423},[2425,17268,17269,17279],{},[2428,17270,17271,17273,17275,17277],{},[2431,17272,2434],{"mathvariant":2433},[2436,17274,1488],{"stretchy":2438},[2440,17276,932],{},[2436,17278,2444],{"stretchy":2438},[2446,17280,2449],{"encoding":2448},[701,17282,17284],{"className":17283,"ariaHidden":2454},[2453],[701,17285,17287,17290,17293,17296,17299],{"className":17286},[2458],[701,17288],{"className":17289,"style":2463},[2462],[701,17291,2434],{"className":17292,"style":2469},[2467,2468],[701,17294,1488],{"className":17295},[2473],[701,17297,932],{"className":17298},[2467],[701,17300,2444],{"className":17301},[2480]," amorti). Même\ninterface, deux performances — c'est l'illustration parfaite du principe :\n",[787,17304,17305],{},"écrire plusieurs implémentations d'une même structure de données",[600,17307,17308,17309,17312,17313,17315,17316,17359],{},"Sur ces bases, quatre familles de structures se déploient. Les ",[604,17310,17311],{},"structures\nlinéaires"," (TA03) — pile (LIFO), file (FIFO), dictionnaire (accès par clé),\nliste (accès par index) — se distinguent par leurs méthodes plutôt que par leur\ncontenu : on choisit une pile non pour ce qu'elle stocke, mais parce qu'on a\nbesoin du ",[787,17314,3974],{},". La recherche par clé dans un dictionnaire en\n",[701,17317,17319,17338],{"className":17318},[2415],[701,17320,17322],{"className":17321},[2419],[2421,17323,17324],{"xmlns":2423},[2425,17325,17326,17336],{},[2428,17327,17328,17330,17332,17334],{},[2431,17329,2434],{"mathvariant":2433},[2436,17331,1488],{"stretchy":2438},[2440,17333,932],{},[2436,17335,2444],{"stretchy":2438},[2446,17337,2449],{"encoding":2448},[701,17339,17341],{"className":17340,"ariaHidden":2454},[2453],[701,17342,17344,17347,17350,17353,17356],{"className":17343},[2458],[701,17345],{"className":17346,"style":2463},[2462],[701,17348,2434],{"className":17349,"style":2469},[2467,2468],[701,17351,1488],{"className":17352},[2473],[701,17354,932],{"className":17355},[2467],[701,17357,2444],{"className":17358},[2480]," moyen est l'un des grands gains du chapitre.",[600,17361,17362,17363,17365,17366,17394,17395,17423,17424,17586,17587,17590,17591,17669],{},"Les ",[604,17364,4972],{}," (TA01) ouvrent la hiérarchie. Vous savez désormais\nmesurer un arbre — taille ",[701,17367,17369,17382],{"className":17368},[2415],[701,17370,17372],{"className":17371},[2419],[2421,17373,17374],{"xmlns":2423},[2425,17375,17376,17380],{},[2428,17377,17378],{},[2431,17379,2512],{},[2446,17381,2512],{"encoding":2448},[701,17383,17385],{"className":17384,"ariaHidden":2454},[2453],[701,17386,17388,17391],{"className":17387},[2458],[701,17389],{"className":17390,"style":2566},[2462],[701,17392,2512],{"className":17393},[2467,2536],", hauteur ",[701,17396,17398,17411],{"className":17397},[2415],[701,17399,17401],{"className":17400},[2419],[2421,17402,17403],{"xmlns":2423},[2425,17404,17405,17409],{},[2428,17406,17407],{},[2431,17408,4694],{},[2446,17410,4694],{"encoding":2448},[701,17412,17414],{"className":17413,"ariaHidden":2454},[2453],[701,17415,17417,17420],{"className":17416},[2458],[701,17418],{"className":17419,"style":2970},[2462],[701,17421,4694],{"className":17422},[2467,2536]," — et démontrer par récurrence\nl'encadrement\n",[701,17425,17427,17467],{"className":17426},[2415],[701,17428,17430],{"className":17429},[2419],[2421,17431,17432],{"xmlns":2423},[2425,17433,17434,17464],{},[2428,17435,17436,17438,17440,17442,17444,17446,17448,17460,17462],{},[2431,17437,4694],{},[2436,17439,1049],{},[2440,17441,932],{},[2436,17443,6956],{},[2431,17445,2512],{},[2436,17447,6956],{},[7158,17449,17450,17452],{},[2440,17451,2355],{},[2428,17453,17454,17456,17458],{},[2431,17455,4694],{},[2436,17457,1049],{},[2440,17459,932],{},[2436,17461,6075],{},[2440,17463,8799],{},[2446,17465,17466],{"encoding":2448},"h + 1 \\le n \\le 2^{h+1} - 1.",[701,17468,17470,17488,17506,17524,17577],{"className":17469,"ariaHidden":2454},[2453],[701,17471,17473,17476,17479,17482,17485],{"className":17472},[2458],[701,17474],{"className":17475,"style":7186},[2462],[701,17477,4694],{"className":17478},[2467,2536],[701,17480],{"className":17481,"style":5745},[4680],[701,17483,1049],{"className":17484},[5749],[701,17486],{"className":17487,"style":5745},[4680],[701,17489,17491,17494,17497,17500,17503],{"className":17490},[2458],[701,17492],{"className":17493,"style":7068},[2462],[701,17495,932],{"className":17496},[2467],[701,17498],{"className":17499,"style":5190},[4680],[701,17501,6956],{"className":17502},[5194],[701,17504],{"className":17505,"style":5190},[4680],[701,17507,17509,17512,17515,17518,17521],{"className":17508},[2458],[701,17510],{"className":17511,"style":7223},[2462],[701,17513,2512],{"className":17514},[2467,2536],[701,17516],{"className":17517,"style":5190},[4680],[701,17519,6956],{"className":17520},[5194],[701,17522],{"className":17523,"style":5190},[4680],[701,17525,17527,17530,17568,17571,17574],{"className":17526},[2458],[701,17528],{"className":17529,"style":7242},[2462],[701,17531,17533,17536],{"className":17532},[2467],[701,17534,2355],{"className":17535},[2467],[701,17537,17539],{"className":17538},[5771],[701,17540,17542],{"className":17541},[5705],[701,17543,17545],{"className":17544},[5710],[701,17546,17548],{"className":17547,"style":7261},[5714],[701,17549,17550,17553],{"style":7264},[701,17551],{"className":17552,"style":5788},[5722],[701,17554,17556],{"className":17555},[5792,5793,5794,5795],[701,17557,17559,17562,17565],{"className":17558},[2467,5795],[701,17560,4694],{"className":17561},[2467,2536,5795],[701,17563,1049],{"className":17564},[5749,5795],[701,17566,932],{"className":17567},[2467,5795],[701,17569],{"className":17570,"style":5745},[4680],[701,17572,6075],{"className":17573},[5749],[701,17575],{"className":17576,"style":5745},[4680],[701,17578,17580,17583],{"className":17579},[2458],[701,17581],{"className":17582,"style":5204},[2462],[701,17584,8799],{"className":17585},[2467],"\nLa conséquence pratique est centrale : un arbre ",[604,17588,17589],{},"équilibré"," donne ",[701,17592,17594,17622],{"className":17593},[2415],[701,17595,17597],{"className":17596},[2419],[2421,17598,17599],{"xmlns":2423},[2425,17600,17601,17619],{},[2428,17602,17603,17605,17607,17609,17611,17613,17615,17617],{},[2431,17604,4694],{},[2436,17606,9834],{},[2431,17608,2434],{"mathvariant":2433},[2436,17610,1488],{"stretchy":2438},[2431,17612,6935],{},[2436,17614,6107],{},[2431,17616,2512],{},[2436,17618,2444],{"stretchy":2438},[2446,17620,17621],{"encoding":2448},"h \\in\n\\mathcal{O}(\\log n)",[701,17623,17625,17643],{"className":17624,"ariaHidden":2454},[2453],[701,17626,17628,17631,17634,17637,17640],{"className":17627},[2458],[701,17629],{"className":17630,"style":9859},[2462],[701,17632,4694],{"className":17633},[2467,2536],[701,17635],{"className":17636,"style":5190},[4680],[701,17638,9834],{"className":17639},[5194],[701,17641],{"className":17642,"style":5190},[4680],[701,17644,17646,17649,17652,17655,17660,17663,17666],{"className":17645},[2458],[701,17647],{"className":17648,"style":2463},[2462],[701,17650,2434],{"className":17651,"style":2469},[2467,2468],[701,17653,1488],{"className":17654},[2473],[701,17656,6985,17658],{"className":17657},[6279],[701,17659,5597],{"style":6988},[701,17661],{"className":17662,"style":6342},[4680],[701,17664,2512],{"className":17665},[2467,2536],[701,17667,2444],{"className":17668},[2480],", ce qui rend logarithmiques les opérations qui s'appuient\ndessus.",[600,17671,17362,17672,17675,17676,17749,17750,17815,17816,17819],{},[604,17673,17674],{},"graphes"," (TA02) généralisent en autorisant cycles et relations multiples.\nVous savez modéliser une situation (réseau routier non orienté, web orienté),\nreprésenter le graphe en mémoire de deux manières (matrice d'adjacence en\n",[701,17677,17679,17702],{"className":17678},[2415],[701,17680,17682],{"className":17681},[2419],[2421,17683,17684],{"xmlns":2423},[2425,17685,17686,17700],{},[2428,17687,17688,17690,17692,17698],{},[2431,17689,2434],{"mathvariant":2433},[2436,17691,1488],{"stretchy":2438},[7158,17693,17694,17696],{},[2431,17695,2512],{},[2440,17697,2355],{},[2436,17699,2444],{"stretchy":2438},[2446,17701,11827],{"encoding":2448},[701,17703,17705],{"className":17704,"ariaHidden":2454},[2453],[701,17706,17708,17711,17714,17717,17746],{"className":17707},[2458],[701,17709],{"className":17710,"style":11837},[2462],[701,17712,2434],{"className":17713,"style":2469},[2467,2468],[701,17715,1488],{"className":17716},[2473],[701,17718,17720,17723],{"className":17719},[2467],[701,17721,2512],{"className":17722},[2467,2536],[701,17724,17726],{"className":17725},[5771],[701,17727,17729],{"className":17728},[5705],[701,17730,17732],{"className":17731},[5710],[701,17733,17735],{"className":17734,"style":11862},[5714],[701,17736,17737,17740],{"style":7264},[701,17738],{"className":17739,"style":5788},[5722],[701,17741,17743],{"className":17742},[5792,5793,5794,5795],[701,17744,2355],{"className":17745},[2467,5795],[701,17747,2444],{"className":17748},[2480]," d'espace, liste de successeurs en ",[701,17751,17753,17776],{"className":17752},[2415],[701,17754,17756],{"className":17755},[2419],[2421,17757,17758],{"xmlns":2423},[2425,17759,17760,17774],{},[2428,17761,17762,17764,17766,17768,17770,17772],{},[2431,17763,2434],{"mathvariant":2433},[2436,17765,1488],{"stretchy":2438},[2431,17767,2512],{},[2436,17769,1049],{},[2431,17771,4685],{},[2436,17773,2444],{"stretchy":2438},[2446,17775,12283],{"encoding":2448},[701,17777,17779,17803],{"className":17778,"ariaHidden":2454},[2453],[701,17780,17782,17785,17788,17791,17794,17797,17800],{"className":17781},[2458],[701,17783],{"className":17784,"style":2463},[2462],[701,17786,2434],{"className":17787,"style":2469},[2467,2468],[701,17789,1488],{"className":17790},[2473],[701,17792,2512],{"className":17793},[2467,2536],[701,17795],{"className":17796,"style":5745},[4680],[701,17798,1049],{"className":17799},[5749],[701,17801],{"className":17802,"style":5745},[4680],[701,17804,17806,17809,17812],{"className":17805},[2458],[701,17807],{"className":17808,"style":2463},[2462],[701,17810,4685],{"className":17811},[2467,2536],[701,17813,2444],{"className":17814},[2480],") et\n",[604,17817,17818],{},"convertir"," entre les deux. Le choix de représentation se fait en fonction de\nla densité du graphe et des opérations dominantes.",[600,17821,17822],{},"L'ensemble du chapitre prépare directement les algorithmes du chapitre TE :\nparcours d'arbres, BFS et DFS sur graphes, plus court chemin.",[595,17824,17826],{"id":17825},"carte-des-notions","Carte des notions",[1260,17828,17829,17845],{},[1263,17830,17831],{},[1266,17832,17833,17836,17839,17842],{},[1269,17834,17835],{},"Cours",[1269,17837,17838],{},"Items BO",[1269,17840,17841],{},"Notion centrale",[1269,17843,17844],{},"Outils Python",[1276,17846,17847,17870,17887,17906,17950],{},[1266,17848,17849,17852,17855,17858],{},[1281,17850,17851],{},"1. Objet, classe, interface",[1281,17853,17854],{},"TA04, TA05",[1281,17856,17857],{},"Classe, objet, méthode ; interface ≠ implémentation ; encapsulation",[1281,17859,17860,1720,17862,1720,17864,17866,17867],{},[623,17861,708],{},[623,17863,801],{},[623,17865,813],{},", attribut ",[623,17868,17869],{},"_x",[1266,17871,17872,17875,17877,17880],{},[1281,17873,17874],{},"2. Implémenter une file FIFO",[1281,17876,589],{},[1281,17878,17879],{},"Plusieurs implémentations pour un même contrat",[1281,17881,17882,1720,17884,17886],{},[623,17883,1884],{},[623,17885,1888],{},", complexité amortie",[1266,17888,17889,17892,17894,17897],{},[1281,17890,17891],{},"3. Linéaires (listes, piles, files, dict)",[1281,17893,3815],{},[1281,17895,17896],{},"LIFO, FIFO, accès par clé",[1281,17898,17899,1720,17902,1720,17904],{},[623,17900,17901],{},"list",[623,17903,4904],{},[623,17905,4407],{},[1266,17907,17908,17911,17913,17944],{},[1281,17909,17910],{},"4. Arbres binaires",[1281,17912,4940],{},[1281,17914,17915,17916],{},"Hiérarchie, encadrement de ",[701,17917,17919,17932],{"className":17918},[2415],[701,17920,17922],{"className":17921},[2419],[2421,17923,17924],{"xmlns":2423},[2425,17925,17926,17930],{},[2428,17927,17928],{},[2431,17929,4694],{},[2446,17931,4694],{"encoding":2448},[701,17933,17935],{"className":17934,"ariaHidden":2454},[2453],[701,17936,17938,17941],{"className":17937},[2458],[701,17939],{"className":17940,"style":2970},[2462],[701,17942,4694],{"className":17943},[2467,2536],[1281,17945,17946,17947,17949],{},"classe ",[623,17948,1726],{},", récursion",[1266,17951,17952,17955,17957,17960],{},[1281,17953,17954],{},"5. Graphes",[1281,17956,10171],{},[1281,17958,17959],{},"Sommets, arêtes, deux représentations",[1281,17961,17962],{},"matrice, dict de listes",[595,17964,17966],{"id":17965},"auto-évaluation","Auto-évaluation",[930,17968,17970,17975],{"correct":932,"slug":17969},"ta-structures-donnees-1-q1",[935,17971,17972],{"v-slot:question":697},[600,17973,17974],{},"Quel est le mode de fonctionnement d'une file ?",[935,17976,17977],{"v-slot:choices":697},[775,17978,17979,17982,17985,17988],{},[778,17980,17981],{},"LIFO — le dernier entré sort en premier",[778,17983,17984],{},"FIFO — le premier entré sort en premier",[778,17986,17987],{},"Aléatoire",[778,17989,17990],{},"Trié par valeur croissante",[930,17992,17994,17999],{"correct":932,"slug":17993},"ta-structures-donnees-1-q2",[935,17995,17996],{"v-slot:question":697},[600,17997,17998],{},"Dans une implémentation de file FIFO par deux piles, à quel moment transvase-t-on l'entrée vers la sortie ?",[935,18000,18001],{"v-slot:choices":697},[775,18002,18003,18006,18009,18012],{},[778,18004,18005],{},"À chaque enfilage",[778,18007,18008],{},"Quand la pile de sortie est vide et qu'on souhaite défiler",[778,18010,18011],{},"À chaque défilage, systématiquement",[778,18013,18014],{},"Quand les deux piles sont vides",[18016,18017,18019],"self-eval-free-text",{"answer":3907,"case-sensitive":2438,"slug":18018},"ta-structures-donnees-1-q3",[935,18020,18021],{"v-slot:question":697},[600,18022,18023],{},"Donnez le sigle anglais qui décrit le mode de fonctionnement d'une pile.",[930,18025,18027,18090],{"correct":2355,"slug":18026},"ta-structures-donnees-1-q4",[935,18028,18029],{"v-slot:question":697},[600,18030,18031,18032,18060,18061,18089],{},"Pour un arbre binaire de hauteur ",[701,18033,18035,18048],{"className":18034},[2415],[701,18036,18038],{"className":18037},[2419],[2421,18039,18040],{"xmlns":2423},[2425,18041,18042,18046],{},[2428,18043,18044],{},[2431,18045,4694],{},[2446,18047,4694],{"encoding":2448},[701,18049,18051],{"className":18050,"ariaHidden":2454},[2453],[701,18052,18054,18057],{"className":18053},[2458],[701,18055],{"className":18056,"style":2970},[2462],[701,18058,4694],{"className":18059},[2467,2536],", quelle est la majoration du nombre ",[701,18062,18064,18077],{"className":18063},[2415],[701,18065,18067],{"className":18066},[2419],[2421,18068,18069],{"xmlns":2423},[2425,18070,18071,18075],{},[2428,18072,18073],{},[2431,18074,2512],{},[2446,18076,2512],{"encoding":2448},[701,18078,18080],{"className":18079,"ariaHidden":2454},[2453],[701,18081,18083,18086],{"className":18082},[2458],[701,18084],{"className":18085,"style":2566},[2462],[701,18087,2512],{"className":18088},[2467,2536]," de nœuds ?",[935,18091,18092],{"v-slot:choices":697},[775,18093,18094,18147,18205,18324],{},[778,18095,18096],{},[701,18097,18099,18117],{"className":18098},[2415],[701,18100,18102],{"className":18101},[2419],[2421,18103,18104],{"xmlns":2423},[2425,18105,18106,18114],{},[2428,18107,18108,18110,18112],{},[2431,18109,2512],{},[2436,18111,6956],{},[2431,18113,4694],{},[2446,18115,18116],{"encoding":2448},"n \\le h",[701,18118,18120,18138],{"className":18119,"ariaHidden":2454},[2453],[701,18121,18123,18126,18129,18132,18135],{"className":18122},[2458],[701,18124],{"className":18125,"style":7223},[2462],[701,18127,2512],{"className":18128},[2467,2536],[701,18130],{"className":18131,"style":5190},[4680],[701,18133,6956],{"className":18134},[5194],[701,18136],{"className":18137,"style":5190},[4680],[701,18139,18141,18144],{"className":18140},[2458],[701,18142],{"className":18143,"style":2970},[2462],[701,18145,4694],{"className":18146},[2467,2536],[778,18148,18149],{},[701,18150,18152,18172],{"className":18151},[2415],[701,18153,18155],{"className":18154},[2419],[2421,18156,18157],{"xmlns":2423},[2425,18158,18159,18169],{},[2428,18160,18161,18163,18165,18167],{},[2431,18162,2512],{},[2436,18164,6956],{},[2440,18166,2355],{},[2431,18168,4694],{},[2446,18170,18171],{"encoding":2448},"n \\le 2h",[701,18173,18175,18193],{"className":18174,"ariaHidden":2454},[2453],[701,18176,18178,18181,18184,18187,18190],{"className":18177},[2458],[701,18179],{"className":18180,"style":7223},[2462],[701,18182,2512],{"className":18183},[2467,2536],[701,18185],{"className":18186,"style":5190},[4680],[701,18188,6956],{"className":18189},[5194],[701,18191],{"className":18192,"style":5190},[4680],[701,18194,18196,18199,18202],{"className":18195},[2458],[701,18197],{"className":18198,"style":2970},[2462],[701,18200,2355],{"className":18201},[2467],[701,18203,4694],{"className":18204},[2467,2536],[778,18206,18207],{},[701,18208,18210,18241],{"className":18209},[2415],[701,18211,18213],{"className":18212},[2419],[2421,18214,18215],{"xmlns":2423},[2425,18216,18217,18239],{},[2428,18218,18219,18221,18223,18235,18237],{},[2431,18220,2512],{},[2436,18222,6956],{},[7158,18224,18225,18227],{},[2440,18226,2355],{},[2428,18228,18229,18231,18233],{},[2431,18230,4694],{},[2436,18232,1049],{},[2440,18234,932],{},[2436,18236,6075],{},[2440,18238,932],{},[2446,18240,9101],{"encoding":2448},[701,18242,18244,18262,18315],{"className":18243,"ariaHidden":2454},[2453],[701,18245,18247,18250,18253,18256,18259],{"className":18246},[2458],[701,18248],{"className":18249,"style":7223},[2462],[701,18251,2512],{"className":18252},[2467,2536],[701,18254],{"className":18255,"style":5190},[4680],[701,18257,6956],{"className":18258},[5194],[701,18260],{"className":18261,"style":5190},[4680],[701,18263,18265,18268,18306,18309,18312],{"className":18264},[2458],[701,18266],{"className":18267,"style":7242},[2462],[701,18269,18271,18274],{"className":18270},[2467],[701,18272,2355],{"className":18273},[2467],[701,18275,18277],{"className":18276},[5771],[701,18278,18280],{"className":18279},[5705],[701,18281,18283],{"className":18282},[5710],[701,18284,18286],{"className":18285,"style":7261},[5714],[701,18287,18288,18291],{"style":7264},[701,18289],{"className":18290,"style":5788},[5722],[701,18292,18294],{"className":18293},[5792,5793,5794,5795],[701,18295,18297,18300,18303],{"className":18296},[2467,5795],[701,18298,4694],{"className":18299},[2467,2536,5795],[701,18301,1049],{"className":18302},[5749,5795],[701,18304,932],{"className":18305},[2467,5795],[701,18307],{"className":18308,"style":5745},[4680],[701,18310,6075],{"className":18311},[5749],[701,18313],{"className":18314,"style":5745},[4680],[701,18316,18318,18321],{"className":18317},[2458],[701,18319],{"className":18320,"style":5204},[2462],[701,18322,932],{"className":18323},[2467],[778,18325,18326],{},[701,18327,18329,18351],{"className":18328},[2415],[701,18330,18332],{"className":18331},[2419],[2421,18333,18334],{"xmlns":2423},[2425,18335,18336,18348],{},[2428,18337,18338,18340,18342],{},[2431,18339,2512],{},[2436,18341,6956],{},[7158,18343,18344,18346],{},[2431,18345,4694],{},[2440,18347,2355],{},[2446,18349,18350],{"encoding":2448},"n \\le h^2",[701,18352,18354,18372],{"className":18353,"ariaHidden":2454},[2453],[701,18355,18357,18360,18363,18366,18369],{"className":18356},[2458],[701,18358],{"className":18359,"style":7223},[2462],[701,18361,2512],{"className":18362},[2467,2536],[701,18364],{"className":18365,"style":5190},[4680],[701,18367,6956],{"className":18368},[5194],[701,18370],{"className":18371,"style":5190},[4680],[701,18373,18375,18378],{"className":18374},[2458],[701,18376],{"className":18377,"style":11862},[2462],[701,18379,18381,18384],{"className":18380},[2467],[701,18382,4694],{"className":18383},[2467,2536],[701,18385,18387],{"className":18386},[5771],[701,18388,18390],{"className":18389},[5705],[701,18391,18393],{"className":18392},[5710],[701,18394,18396],{"className":18395,"style":11862},[5714],[701,18397,18398,18401],{"style":7264},[701,18399],{"className":18400,"style":5788},[5722],[701,18402,18404],{"className":18403},[5792,5793,5794,5795],[701,18405,2355],{"className":18406},[2467,5795],[18016,18408,18410],{"answer":813,"case-sensitive":2454,"slug":18409},"ta-structures-donnees-1-q5",[935,18411,18412],{"v-slot:question":697},[600,18413,18414],{},"En Python, comment s'appelle (par convention) le premier paramètre d'une méthode d'instance ?",[930,18416,18418,18423],{"correct":932,"slug":18417},"ta-structures-donnees-1-q6",[935,18419,18420],{"v-slot:question":697},[600,18421,18422],{},"Quelle représentation est la plus économique en mémoire pour un graphe creux (peu d'arêtes) ?",[935,18424,18425],{"v-slot:choices":697},[775,18426,18427,18430,18433,18436],{},[778,18428,18429],{},"Matrice d'adjacence",[778,18431,18432],{},"Liste de successeurs",[778,18434,18435],{},"Tableau bi-dimensionnel symétrique",[778,18437,18438],{},"Pile de couples",[18440,18441,18443,18448],"self-eval-ordering",{"slug":18442},"ta-structures-donnees-1-q7",[935,18444,18445],{"v-slot:question":697},[600,18446,18447],{},"Ordonnez ces structures par complexité moyenne de recherche d'un élément, de la plus rapide à la plus lente.",[935,18449,18450],{"v-slot:items":697},[775,18451,18452,18455,18458],{},[778,18453,18454],{},"Dictionnaire (recherche par clé)",[778,18456,18457],{},"Liste triée (recherche dichotomique)",[778,18459,18460],{},"Liste non triée (recherche séquentielle)",[930,18462,18464,18471],{"correct":2355,"slug":18463},"ta-structures-donnees-1-q8",[935,18465,18466],{"v-slot:question":697},[600,18467,18468,18469,1198],{},"Quelle ligne de code crée un nouvel objet de la classe ",[623,18470,1723],{},[935,18472,18473],{"v-slot:choices":697},[775,18474,18475,18480,18485,18490],{},[778,18476,18477],{},[623,18478,18479],{},"Pile.empiler()",[778,18481,18482],{},[623,18483,18484],{},"p = new Pile()",[778,18486,18487],{},[623,18488,18489],{},"p = Pile()",[778,18491,18492],{},[623,18493,18494],{},"p = Pile.__init__()",[18440,18496,18498,18503],{"slug":18497},"ta-structures-donnees-1-q9",[935,18499,18500],{"v-slot:question":697},[600,18501,18502],{},"Ordonnez les étapes pour convertir une matrice d'adjacence en liste de successeurs.",[935,18504,18505],{"v-slot:items":697},[775,18506,18507,18510,18543,18715],{},[778,18508,18509],{},"Initialiser un dictionnaire vide pour chaque sommet",[778,18511,18512,18513,18542],{},"Parcourir chaque ligne ",[701,18514,18516,18529],{"className":18515},[2415],[701,18517,18519],{"className":18518},[2419],[2421,18520,18521],{"xmlns":2423},[2425,18522,18523,18527],{},[2428,18524,18525],{},[2431,18526,5508],{},[2446,18528,5508],{"encoding":2448},[701,18530,18532],{"className":18531,"ariaHidden":2454},[2453],[701,18533,18535,18539],{"className":18534},[2458],[701,18536],{"className":18537,"style":18538},[2462],"height:0.6595em;",[701,18540,5508],{"className":18541},[2467,2536]," de la matrice",[778,18544,18545,18546,18575,18576,18657,18658,18686,18687],{},"Pour chaque colonne ",[701,18547,18549,18562],{"className":18548},[2415],[701,18550,18552],{"className":18551},[2419],[2421,18553,18554],{"xmlns":2423},[2425,18555,18556,18560],{},[2428,18557,18558],{},[2431,18559,11168],{},[2446,18561,11168],{"encoding":2448},[701,18563,18565],{"className":18564,"ariaHidden":2454},[2453],[701,18566,18568,18572],{"className":18567},[2458],[701,18569],{"className":18570,"style":18571},[2462],"height:0.854em;vertical-align:-0.1944em;",[701,18573,11168],{"className":18574,"style":11260},[2467,2536]," telle que ",[701,18577,18579,18609],{"className":18578},[2415],[701,18580,18582],{"className":18581},[2419],[2421,18583,18584],{"xmlns":2423},[2425,18585,18586,18606],{},[2428,18587,18588,18590,18592,18594,18596,18598,18600,18602,18604],{},[2431,18589,11070],{},[2436,18591,11158],{"stretchy":2438},[2431,18593,5508],{},[2436,18595,11163],{"stretchy":2438},[2436,18597,11158],{"stretchy":2438},[2431,18599,11168],{},[2436,18601,11163],{"stretchy":2438},[2436,18603,746],{},[2440,18605,932],{},[2446,18607,18608],{"encoding":2448},"M[i][j] = 1",[701,18610,18612,18648],{"className":18611,"ariaHidden":2454},[2453],[701,18613,18615,18618,18621,18624,18627,18630,18633,18636,18639,18642,18645],{"className":18614},[2458],[701,18616],{"className":18617,"style":2463},[2462],[701,18619,11070],{"className":18620,"style":11085},[2467,2536],[701,18622,11158],{"className":18623},[2473],[701,18625,5508],{"className":18626},[2467,2536],[701,18628,11163],{"className":18629},[2480],[701,18631,11158],{"className":18632},[2473],[701,18634,11168],{"className":18635,"style":11260},[2467,2536],[701,18637,11163],{"className":18638},[2480],[701,18640],{"className":18641,"style":5190},[4680],[701,18643,746],{"className":18644},[5194],[701,18646],{"className":18647,"style":5190},[4680],[701,18649,18651,18654],{"className":18650},[2458],[701,18652],{"className":18653,"style":5204},[2462],[701,18655,932],{"className":18656},[2467],", ajouter ",[701,18659,18661,18674],{"className":18660},[2415],[701,18662,18664],{"className":18663},[2419],[2421,18665,18666],{"xmlns":2423},[2425,18667,18668,18672],{},[2428,18669,18670],{},[2431,18671,11168],{},[2446,18673,11168],{"encoding":2448},[701,18675,18677],{"className":18676,"ariaHidden":2454},[2453],[701,18678,18680,18683],{"className":18679},[2458],[701,18681],{"className":18682,"style":18571},[2462],[701,18684,11168],{"className":18685,"style":11260},[2467,2536]," à la liste du sommet ",[701,18688,18690,18703],{"className":18689},[2415],[701,18691,18693],{"className":18692},[2419],[2421,18694,18695],{"xmlns":2423},[2425,18696,18697,18701],{},[2428,18698,18699],{},[2431,18700,5508],{},[2446,18702,5508],{"encoding":2448},[701,18704,18706],{"className":18705,"ariaHidden":2454},[2453],[701,18707,18709,18712],{"className":18708},[2458],[701,18710],{"className":18711,"style":18538},[2462],[701,18713,5508],{"className":18714},[2467,2536],[778,18716,18717],{},"Retourner le dictionnaire",{"title":697,"searchDepth":719,"depth":719,"links":18719},[18720,18721,18722],{"id":3844,"depth":719,"text":3845},{"id":17825,"depth":719,"text":17826},{"id":17965,"depth":719,"text":17966},"Vue d'ensemble du chapitre TA, carte des notions et auto-évaluation finale.",{"self_eval_slug":18725},"nsi-tale-ta-structures-donnees","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fchapitre.memo",[18728,18730,18732,18736,18743,18744,18746,18749,18752],{"slug":17969,"kind":1930,"question":17974,"choices":18729,"correct":932,"multi":1933,"explanation":697},[17981,17984,17987,17990],{"slug":17993,"kind":1930,"question":17998,"choices":18731,"correct":932,"multi":1933,"explanation":697},[18005,18008,18011,18014],{"slug":18018,"kind":18733,"question":18023,"answer":3907,"caseSensitive":1933,"tolerance":18734,"inputType":18735,"explanation":697},"free_text",0,"string",{"slug":18026,"kind":1930,"question":18737,"choices":18738,"correct":2355,"multi":1933,"explanation":697},"Pour un arbre binaire de hauteur hhh, quelle est la majoration du nombre nnn de nœuds ?",[18739,18740,18741,18742],"n≤hn \\le hn≤h","n≤2hn \\le 2hn≤2h","n≤2h+1−1n \\le 2^{h+1} - 1n≤2h+1−1","n≤h2n \\le h^2n≤h2",{"slug":18409,"kind":18733,"question":18414,"answer":813,"caseSensitive":729,"tolerance":18734,"inputType":18735,"explanation":697},{"slug":18417,"kind":1930,"question":18422,"choices":18745,"correct":932,"multi":1933,"explanation":697},[18429,18432,18435,18438],{"slug":18442,"kind":18747,"question":18447,"items":18748,"explanation":697},"ordering",[18454,18457,18460],{"slug":18463,"kind":1930,"question":18750,"choices":18751,"correct":2355,"multi":1933,"explanation":697},"Quelle ligne de code crée un nouvel objet de la classe Pile ?",[18479,18484,18489,18494],{"slug":18497,"kind":18747,"question":18502,"items":18753,"explanation":697},[18509,18754,18755,18717],"Parcourir chaque ligne iii de la matrice","Pour chaque colonne jjj telle que M[i][j]=1M[i][j] = 1M[i][j]=1, ajouter jjj à la liste du sommet iii",{"title":17175,"description":18723},"2.nsi-tale\u002Fta-structures-donnees\u002Fchapitre.memo","KUFXotouhnJVxp5x3iHblILQ-5h2beX4fk395fqv_0I",1788035584660]