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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7930c2a36b3a47b9b8b6579a6c82630c061562f2211c02545eda79b9abb0f63
|
|
| MD5 |
0bd7325cfaaf7b5aad31ebed0a868a77
|
|
| BLAKE2b-256 |
9d05699717d573cb940271f3877b7b3bf93f3db3ca77b8031c028a7a17cfc802
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0827cbdec33b4ad3e8408aa61e33b69e8b5891e72d8471370abcf7464edeebef
|
|
| MD5 |
19480968cd7ea0442c63375928e2f12a
|
|
| BLAKE2b-256 |
8f43f24ac02f31c0cbd11a187c0ba41aafc5c8678d07331602ab4793739190d3
|