PTA Structures de Données et Algorithmes – 7-4 : Même arbre binaire de recherche ?

Étant donné une séquence d'insertion, on peut construire un unique arbre binaire de recherche. Cependant, un même arbre binaire de recherche peut être obtenu à partir de plusieurs séquences d'insertion différentes. Par exemple, les séquences {2, 1, 3} et {2, 3, 1} insérées dans un arbre binaire de recherche initialement vide donnent le même rés ...

Publié le 24 juin à 04h07

Guide pratique des algorithmes de la bibliothèque standard C++

Algorithmes de séquence non modifiante Ces algorithmes ne modifient pas les éléments des conteneurs sur lesquels ils opèrent. 1.1 Recherche avec find et find_if find(premier, dernier, valeur) localise le premier élément égal à la valeur et retourne un itérateur. Si aucun élément n'est trouvé, l'itérateur dernier est retourné. find_if(premier ...

Publié le 23 juin à 19h25

Algorithmes de Graphes : Arbre Couvrant Minimal de Prim et Tri Topologique

Algorithme de Prim pour l'Arbre Couvrnat Minimal (MST) L'algorithme de Prim est une méthode gloutonne permettant de trouver l'arbre couvrant minimal d'un graphe connexe pondéré. L'implémentation ci-dessous utilise une matrice d'adjacence pour représenter le graphe. #include <stdio.h> #include <stdlib.h> #define VAL_INF 65535 #defin ...

Publié le 23 juin à 00h19

Vérifier si une liste chaînée est un palindrome

Problème Étant donné une liste chaînée simplement chaînée, déterminer si elle constitue un palindrome. Suivi : Peut-on résoudre ce problème en O(n) temps et O(1) espace ? Analyse L'objectif est de vérifier si une liste chaînée est symétrique (palindrome). Solution 1 : Approche avec tableau auxiliaire Une première idée consiste à parcourir la li ...

Publié le 22 juin à 22h47

Récursivité en C : Implémentations pratiques

Calcul de la factorielle avec récursion Exemple de programme qui calcule la factorielle d'un nombre entier via une fonction récursive. #include <stdio.h> int calculer_factorielle(int valeur); int main() { int entree; printf("Entrez un entier positif : "); scanf("%d", &entree); if (entree < 0) { ...

Publié le 22 juin à 20h50

Détection d'équivalence de formes 2D sur grille par transformations géométriques

L'objectif de ce problème est de déterminer si deux configurations de formes bidimensionnelles, définies sur une grille, sont équivalentes. L'équivalence est définie par la possibilité d'établir une correspondance biunivoque entre les composantes connexes (souvent appelées "pièces" ou "clusters") de chaque configuration. Cha ...

Publié le 22 juin à 16h41

Solutions des problèmes A à D de la sélection 2022 du NCLG

A. Jeu de combinaison Problème original : CF1221A Énoncé : Xiao Hua adore jouer à 2048 et partage maintenant une version 2048pro avec vous. Pouvez-vous réussir à atteindre 2048 ? Initialement, vous avez un ensemble S de n entiers. Chaque entier de cet ensemble est une puissance de 2 (1, 2, 4, 8, 16, 32, ...). Vous pouvez effectuer un nombre arb ...

Publié le 21 juin à 01h52

Notes de résolution de problèmes LeetCode (débutant)

Manipulations courantes Chaînes de caractères # Conversion ASCII ord('A') # 65 chr(65) # 'A' # Nettoyage s = " hello\t\n" s.strip() # "hello" s.lstrip() # "hello\t\n" s.rstrip() # " hello" # Tests et transformations "abc".isalpha() # True "123".isnu ...

Publié le 21 juin à 00h34

Bilan de la 87ème Compétition Bi-Hebdomadaire : Analyse et Solutions

L'auteur présente son bilan de la 87ème compétition bi-hebdomadaire, ayant réussi à résoudre trois des quatre problèmes proposés. 6184. Calculer le Nombre de Jours Passés Ensemble Le premier problème consistait à dénombrer les jours communs où deux personnes étaient disponibles, étant donné leurs périodes de présence respectives. L'auteur a ren ...

Publié le 20 juin à 17h34

Trouver le Troisième Nombre Maximum dans un Tableau

Le problème consiste à identifier le troisième nombre distinct le plus grand au sein d'un tableau d'entiers non vide. Si un tel nombre n'existe pas (c'est-à-dire s'il y a moins de trois nombres distincts dans le tableau), la fonction doit alors retourner le nombre le plus grand du tableau. Exemples Exemple 1 : Entrée : [3, 2, 1] Sortie : 1 Exp ...

Publié le 18 juin à 20h42