Structures de données en C : Les Listes Chaînées
La liste chaînée est une structure de données fondamentale, tout comme les tableaux, elle peut servir de base à la construction d'autres structures de données.
Structure d'une Liste Chaînée
Une liste chaînée est généralement composée de deux parties :
Une partie contenant les données à stocker.
Une partie servant de pointeur vers le nœud suiva ...
Publié le 15 juillet à 08h50
Structures de données : Tableaux unidimensionnels et bidimensionnels en C
Cet article explore les concepts fondamentaux des tableaux, en commençant par les tableaux unidimensionnels, leur déclaration, initialisation et manipulation. Il aborde ensuite les tableaux bidimensionnels, couvrant des sujets similaires. Des exemples de code et des explications sur leur stockage en mémoire sont fournis pour une meilleure compr ...
Publié le 14 juillet à 22h21
La Tour de Hanoï : Une Introduction Récursive
Le nombre total de mouvements requis pour déplacer 64 disques est de 264 - 1. Ce nombre est astronmoique (environ 18 trillions de trillions). Si un prêtre pouvait déplacer un disque par seconde, sans pause, il faudrait environ 595 milliards d'années pour accomplir la tâche, dépassant de loin l'âge actuel de l'univers.
Règles du Jeu
Un seul dis ...
Publié le 14 juillet à 20h15
Journal de résolution de problèmes NOI 2026 (XVI)
A. [ARC210D] Jeu d'ensemble indépendant (5)
À chaque tour, un sommet u est supprimé, et A supprime également le voisinage de u. Si n est impair, A ne peut pas supprimer le voisinage, sinon l'ensemble de sommets devient vide. En explorant manuellement, on constate que dans ce cas, chaque composante connexe doit avoir ≤ 2 sommets. Si n est pair, ...
Publié le 14 juillet à 11h10
Construction d'un ordinateur à partir de sous-arbres récursifs
Cet article explore une méthode de construction d'une structure arborescente basée sur la récursion, particulièrement adoptée pour optimiser la gestion des sous-arbres identiques. L'objectif est de construire un ordinateur virtuel représenté par un arbre binaire, où la répétition de sous-structures peut être efficacement gérée par le partage de ...
Publié le 12 juillet à 04h42
Tables Éparpilles (Sparse Tables) pour les Problèmes RMQ
Fonctionnalités
Prétraitement en O(log n)
Requête de maximum d'intervalle en O(1)
Ne permet pas de modifier les valeurs du tableau
Pricnipe
Le principe fondamental des tables éparpilles est l'utilisation de la technique de "doublement" (ou exponentiation). On définit une structure de données f[i][j] qui représente le maximum dans l' ...
Publié le 11 juillet à 19h50
Les arbres de segments : principes et implémentations
Les arbres de segments sont une structure de données fondamentale pour les opérations sur les intervalles, permettant des modifications et requêtes en O(log n). Ils sont particulièrement utiles pour gérer des tableaux dynamiques avec des mises à jour et des calculs sur des plages conitnues.
Structure de base
Un arbre de segments est un arbre bi ...
Publié le 10 juillet à 23h28
Structures de données : Piles et Files en C
Les Piles
Définition et principe de fonctionnement
Une pile est une structure de données linéaire qui impose des restrictions sur l'insertion et la supprestion des éléments. Ces opérations ne sont permises qu'à une extrémité spécifique, appelée le sommet de la pile, tandis que l'autre extrémité forme la base. Le principe fondamental qui régit u ...
Publié le 10 juillet à 20h09
Manipulation des Listes dans Redis
Structure de Données List dans Redis
Redis fournit un type de données List qui stocke une séquence ordonnée d'éléments. L'implémentation interne peut utiliser soit un tableau dynamique (similaire à ArrayList) pour un accès rapide par index, soit une liste doublement chaînée (LinkedList) pour des insertions et suppressions efficaces aux extrémit ...
Publié le 10 juillet à 04h13
Exploration du Code Source de HashMap en Java
La classe HashMap en Java est une structure de données fondamentale, largement utilisée pour stocker des paires clé-valeur. Elle offre une performance d'accès moyenne de O(1) pour la plupart des opérations. Pour comprendre son fonctionnement et ses performances, une exploration de son code source est essentielle.
Voici un exemple d'utilisation ...
Publié le 10 juillet à 00h37