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