Skip to main content

Une bibliothèque Python qui vise à implémenter ce qu'on utilise en NSI (Piles, Files, Graphes, etc.)

Project description

Documentation de nsinfo

Introduction

nsinfo est une bibliothèque Python conçue pour implémenter des structures de données courantes (piles, files, graphes, listes chaînées) et des algorithmes classiques (tri, recherche, Fibonacci, etc.). Elle est idéale pour l'utilisation dans le cadre des cours de NSI.


Structures de données

Pile

Une pile (LIFO : Last In, First Out) est une structure de données où le dernier élément ajouté est le premier à être retiré.

Méthodes

  • est_vide(): Vérifie si la pile est vide.
  • empiler(element): Ajoute un élément au sommet de la pile.
  • depiler(): Retire et renvoie l'élément au sommet de la pile.
  • sommet(): Renvoie l'élément au sommet de la pile sans le retirer.

Exemple d'utilisation

pile = Pile()
pile.empiler(1)
pile.empiler(2)
print(pile.depiler())  # 2
print(pile.sommet())  # 1

File

Une file (FIFO : First In, First Out) est une structure de données où le premier élément ajouté est le premier à être retiré.

Méthodes

  • est_vide(): Vérifie si la file est vide.
  • enfiler(element): Ajoute un élément à la fin de la file.
  • defiler(): Retire et renvoie le premier élément de la file.

Exemple d'utilisation

file = File()
file.enfiler(1)
file.enfiler(2)
print(file.defiler())  # 1
print(file.defiler())  # 2

Graphe

Un graphe est une structure de données composée de sommets et d'arêtes qui relient ces sommets.

Méthodes

  • ajouter_sommet(sommet): Ajoute un sommet au graphe.
  • ajouter_arete(sommet1, sommet2): Ajoute une arête entre deux sommets.
  • voisins(sommet): Renvoie la liste des sommets voisins d'un sommet donné.

Exemple d'utilisation

graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
print(graphe.voisins("A"))  # ['B', 'C']

Liste chaînée

Une liste chaînée est une structure de données où chaque élément (ou nœud) contient une valeur et une référence vers l'élément suivant.

Méthodes

  • est_vide(): Vérifie si la liste est vide.
  • ajouter(valeur): Ajoute un élément au début de la liste.
  • car(): Renvoie la valeur du premier élément de la liste.
  • cdn(): Renvoie le reste de la liste après le premier élément.
  • afficher(): Retourne une liste Python avec les valeurs de la liste chaînée.

Exemple d'utilisation

liste = ListeChainee()
liste.ajouter(3)
liste.ajouter(2)
liste.ajouter(1)
print(liste.afficher())  # [1, 2, 3]
print(liste.car())  # 1
reste = liste.cdn()
print(reste.afficher())  # [2, 3]

Fonctions

sous_tableau(tableau, debut, fin)

Renvoie une portion d'un tableau entre les indices debut (inclus) et fin (exclu).

Exemple d'utilisation

tableau = [1, 2, 3, 4, 5]
print(sous_tableau(tableau, 1, 4))  # [2, 3, 4]

tri_insertion(tableau)

Trie un tableau en utilisant l'algorithme de tri par insertion.

Exemple d'utilisation

tableau = [5, 3, 2, 4, 1]
print(tri_insertion(tableau))  # [1, 2, 3, 4, 5]

recherche_dichotomique(tableau, valeur)

Recherche une valeur dans un tableau trié en utilisant la méthode dichotomique.

Exemple d'utilisation

tableau = [1, 2, 3, 4, 5]
print(recherche_dichotomique(tableau, 3))  # 2

fibonacci(n)

Calcule le n-ième terme de la suite de Fibonacci (récursivement).

Exemple d'utilisation

print(fibonacci(5))  # 5

factorielle(n)

Calcule la factorielle de n récursivement.

Exemple d'utilisation

print(factorielle(5))  # 120

parcours_profondeur(graphe, sommet)

Effectue un parcours en profondeur sur un graphe à partir d'un sommet donné.

Exemple d'utilisation

graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
graphe.ajouter_arete("B", "D")
print(parcours_profondeur(graphe, "A"))  # {'A', 'B', 'C', 'D'}

parcours_largeur(graphe, sommet)

Effectue un parcours en largeur sur un graphe à partir d'un sommet donné.

Exemple d'utilisation

graphe = Graphe()
graphe.ajouter_arete("A", "B")
graphe.ajouter_arete("A", "C")
graphe.ajouter_arete("B", "D")
print(parcours_largeur(graphe, "A"))  # {'A', 'B', 'C', 'D'}

Contribution

Les contributions sont les bienvenues. Créez une issue ou un pull request sur le dépôt GitHub.


Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus d'informations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nsinfo-0.2.1.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nsinfo-0.2.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file nsinfo-0.2.1.tar.gz.

File metadata

  • Download URL: nsinfo-0.2.1.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for nsinfo-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d7930c2a36b3a47b9b8b6579a6c82630c061562f2211c02545eda79b9abb0f63
MD5 0bd7325cfaaf7b5aad31ebed0a868a77
BLAKE2b-256 9d05699717d573cb940271f3877b7b3bf93f3db3ca77b8031c028a7a17cfc802

See more details on using hashes here.

File details

Details for the file nsinfo-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: nsinfo-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for nsinfo-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0827cbdec33b4ad3e8408aa61e33b69e8b5891e72d8471370abcf7464edeebef
MD5 19480968cd7ea0442c63375928e2f12a
BLAKE2b-256 8f43f24ac02f31c0cbd11a187c0ba41aafc5c8678d07331602ab4793739190d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page