Algorithmes sur les Arbres Binaires : Transformations et Parcours

1. Transformation d'un arbre binaire en liste chaînée L'objectif est d'aplatir un arbre binaire pour qu'il ressemble à une liste chaînée simple, en utilisant la même structure TreeNode. La liste doit suivre l'ordre d'un parcours en pré-ordre (racine, gauche, droite), avec tous les nœuds gauches mis à null. /** * Definition for a binary tree no ...

Publié le 18 juin à 18h47

Algorithmes LCA : Entraînement avec des problèmes introductifs

L'algorithme du plus ancêtre commun (LCA) est une technique fondamentale pour résoudre des problèmes de distance ou de relations dans des arbres. Cet article présente plusieurs problèmes d'entraînement pour maîtriser le LCA, avec des explications et des implémentations en C++. Problème 1 : Distance entre maisons Lien : HDU 2586 Description : Un ...

Publié le 17 juin à 17h54

Intersection de deux tableaux avec comptage des occurrences

Étant donné deux tableaux d'entiers, écrire une fonction pour calculer leur intersection. Chaque élément dans le résultat doit apparaître un nombre de fois égal au minimum de son occurrence dans les deux tableaux d'origine. L'ordre des éléments dans le résultat n'est pas important. Exemple 1 : Entrée : liste1 = [1,2,2,1], liste2 = [2,2] Sortie ...

Publié le 17 juin à 03h20

Structures de données fondamentales : sac, file d'attente et pile

Structures de données de collection De nombreux types de données fondamentaux reposent sur la gestion d'une collection d'objets. La valeur du type est un ensemble d'objets, et les opérations consistent à ajouter, supprimer ou accéder à ces objets. Nous examinerons trois structures de données de ce type : le Sac (Bag), la File d'attente (Queue) ...

Publié le 16 juin à 16h24

数据结构解析:深入理解链表的工作原理

Table des matières Introduction 1.1 Définition d'une liste chaînée 1.2 Analyse comparative entre listes chaînées et tableaux Première partie : Concepts fondamentaux des listes chaînées 1.3 Structure des nœuds 1.4 Typologie des listes chaînées Deuxième partie : Opérations et caractéristiques des listes chaînées 2.1 Création et destruction d'une ...

Publié le 16 juin à 02h38

Algorithmes de la Bibliothèque Standard C++

Ces algorithmes ne changent pas les éléments des conteneurs sur lesquels ils opèrent. 1.1 Recherche d'éléments find(begin, end, value) : Recherche le premier élément égal à value et renvoie un itérateur (ou end si non trouvé). find_if(begin, end, predicate) : Recherche le premier élément satisfaisant le prédicat. find_end(begin, end, sub_begin ...

Publié le 16 juin à 00h44

Utilisation des algorithmes STL en C++ pour la manipulation de conteneurs

La bibliothèque standard C++ (STL) fournit un riche ensemble d'algorithmes pour la manipulation efficace des conteneurs. Ces algorithmes sont classés en plusieurs catégories en fonction de leur comportement : ceux qui ne modifient pas les séquences, ceux qui les modifient, les algorithmes de tri, les algorithmes de tas, les algorithmes de reche ...

Publié le 15 juin à 04h04

Pratique d'algorithmes pour listes chaînées : Suppression, conception et inversion de nœuds

Suppression d'éléments dans une liste chaînée Problème : Étant donné la tête d'une liste chaînée et une valeur entière, supprimer tous les nœuds où la valeur du nœud est égale à la valeur donnée et retourner la nouvelle tête. Approche : Utiliser un nœud factice (dummy node) pour simplifier la manipulation, en particulier pour la suppression du ...

Publié le 14 juin à 22h37

Journal de résolution d'exercices algorithmiques

11.23 LG14362 [CSP-S2025] Route Un ajout important : pour un graphe donné, après avoir calculé son arbre couvrant minimum (MST), si l'on ajoute d'autres arêtes pour former un nouveau graphe, le MST du nouveau graphe n'utilisera jamais les arêtes non-arbres de l'ancien graphe. LG14394/LOJ2729 [JOISC 2016] Poupée gigogne Analyse Le problème sembl ...

Publié le 14 juin à 03h02

Principes des Structures de Données et Algorithmes

Structures de Données 1.1. Tableau Dynamique Caractéristiques d'un Tableau Stockage : Éléments contigus en mémoire. Avantages : Accès rapide aux éléments par index, recherches efficaces (si l'index est connu). Inconvénients : L'insertion ou la suppression d'éléments est coûteuse, car elle nécessite le décalage des éléments suivants. Straté ...

Publié le 13 juin à 23h13