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

Implémentations algorithmiques fondamentales en C

Cet article présente plusieurs implémentations courantes d'algorithmes et de structures de données en langage C, souvent rencontrées dans des examens de programmation. Addition de grands entiers #include <stdio.h> #include <string.h> #define MAX_TAILLE 20 void inverser_chaine(char *chaine) { int debut = 0, fin = strlen(chaine) ...

Publié le 13 juin à 21h42

Comparer les Numéros de Version en C++

Dans ce problème d'algorithmique, nous devons comparer deux chaînes de caractères représentent des numéros de version. Le point (.) sert de séparateur entre les segments numériques, et non de séparateur décimal. Par exemple, "2.5" indique la cinquième révision du second niveau de la seconde révision principale, et non une valeur décim ...

Publié le 13 juin à 21h15

Préparation aux concours de programmation CSP-S et NOIP 2025

Script de test automatisé Pour valider une solution, on peut utilisre un script qui génère des données, exécute une solution standard et la solution proposée, puis compare les sorties. Voici une version réécrite en C++ : #include<iostream> #include<cstdlib> #include<string> int main() { std::ios::sync_with_stdio(false); ...

Publié le 13 juin à 02h59