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 nsi_library

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.0.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.0-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nsinfo-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 194c4b0075298872c002d2a2b595e6e6e9d1389a0fdb03c8612d319e07a7f626
MD5 5ea3aa0af5812f720685e2f09d561b73
BLAKE2b-256 9233b1dd957b42623dfe7de2a63810db0bcbf61bcd4708314f0cbbd4953f903c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nsinfo-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efc667b83fb94a8ba0aac33b47a3d5d62e998227ba2bb9519cb5ea36ce962c68
MD5 14d6d62201b5ba5ecc76b38328d0a99a
BLAKE2b-256 79e8adf79130cbb10ae6cfa6e7c0ffd98df36f39c7c64f2c2ffa7ec1f6f7c50d

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