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