Cours gratuit, illimité, sans publicité et sans mot de passe (juste ton email), par Ilian, professeur particulier depuis 2020. Rien n'est jamais totalement gratuit : en échange, Head of Science peut t'écrire pour te présenter ses cours, et si celui-ci t'a servi, un avis Google à la fin aide beaucoup.
La mémoire vive : là où vivent les données
Ton téléphone garde tes messages, tes contacts, ton score au jeu du moment. Pendant qu'une appli tourne, toutes ces informations sont stockées dans la mémoire vive, la RAM. Tu l'as déjà croisée dans le cours Python : une variable, c'est une case de la RAM avec une étiquette.
score = 42: Python choisit une case libre, lui colle l'étiquette score et y range 42. Ensuite, chaque fois que le programme écrit score, Python va lire cette case.Le problème de ce chapitre : la RAM contient une quantité énorme de données. Quand ton appli veut afficher un message précis, comment l'ordinateur le retrouve-t-il au milieu de tout le reste ? Pour répondre, il faut d'abord voir à quoi ressemble la RAM.
Programme complet du cours structures de données (12 chapitres, gratuit)
- 1. Ranger des données dans la mémoire : La RAM est un gros tableau de cases numérotées de 0 à N - 1 : 8 milliards pour 8 Go. Impossible de tout relire pour trouver une donnée, d'où les structures de données : un ordre connu à l'avance et des règles pour y accéder. Interface et implémentation.
- 2. Le tableau : des cases côte à côte : Des cases contiguës numérotées : accès direct par l'indice en une seule étape, mais insérer ou supprimer au début oblige à tout décaler.
- 3. La liste chaînée : des maillons reliés : Des maillons éparpillés dans la mémoire, chacun connaît l'adresse du suivant : insérer ou supprimer revient à raccrocher une flèche, mais lire le 100e oblige à passer par les 99 premiers.
- 4. La pile : dernier arrivé, premier sorti : La pile d'assiettes : on pose en haut, on prend en haut. Empiler, dépiler, sommet, LIFO, et une pile en Python avec append et pop.
- 5. La file : premier arrivé, premier servi : La file d'attente : on arrive à la fin, on sort par le début. Enfiler, défiler, FIFO, la différence avec la pile, et une file en Python.
- 6. Devine la structure : Le retour d'Insta, Ctrl+Z, la file d'impression, la playlist « à suivre », le distributeur de Pez, la pile d'appels : reconnaître la structure cachée derrière des situations réelles.
- 7. Les arbres : ranger en hiérarchie : Arborescence de fichiers, arbre généalogique, tournoi : une racine, des nœuds, des feuilles. Vocabulaire, hauteur, taille et arbre binaire.
- 8. Parcourir un arbre : Visiter tous les nœuds d'un arbre, chacun une fois : le parcours en largeur (avec une file), et les parcours en profondeur préfixe, infixe et suffixe.
- 9. L'arbre binaire de recherche : Plus petit à gauche, plus grand à droite : chercher une valeur en éliminant la moitié de l'arbre à chaque comparaison, insérer, et pourquoi l'arbre doit rester équilibré.
- 10. Pile et file en programmation objet : Écrire les classes Pile et File, puis une file fabriquée avec deux piles : même interface, autre implémentation.
- 11. La liste chaînée en programmation objet : Les classes Maillon et ListeChainee : ajouter en tête, parcourir, compter, lire le k-ième, ajouter en queue, supprimer. Puis une pile implémentée par une liste chaînée.
- 12. Les arbres en programmation objet : La classe Noeud, la récursivité pour la taille et la hauteur, les parcours préfixe, infixe, suffixe et en largeur, puis l'insertion et la recherche dans un ABR.