Python Stack and Queue - FR
Python Stack and Queue - FR
La structure des données organise le stockage dans les ordinateurs afin que nous
puissions facilement accéder aux données et les modifier. Les stacks et les files
d'attente sont les premières données structurées définies en informatique. Une
simple liste Python peut également servir de file d'attente et de pile. Une file
d'attente suit la règle FIFO (First In First Out) et utilisé dans la programmation
pour le tri. Il est courant que les stacks et les files d'attente soient implémentées
avec un tableau ou une liste liée.
Stack
Un stack est une structure de données qui suit le principe LIFO (Last In First
Out). Pour implémenter une pile, nous avons besoin de deux opérations simples
push - Il ajoute un élément au sommet de la pile.
pop - Il supprime un élément du haut de la pile.
Opérations :
Ajout - Il ajoute les éléments dans la pile et augmente la taille de la
pile. L'addition a lieu en haut de la pile.
Suppression - Il se compose de deux conditions, d'abord, si aucun élément n'est
présent dans la pile, alors un débordement se produit dans la pile, et
deuxièmement, si un stack contient des éléments, puis l'élément le plus haut est
supprimé. Cela réduit la taille de la pile.
Parcours - Il s'agit de visiter chaque élément de la pile.
Caractéristiques:
L'ordre d'insertion de la pile est conservé.
Utile pour analyser les opérations.
La duplication est autorisée.
Code
# Code pour démontrer la mise en œuvre de
# pile en utilisant la liste
x = [ "Python" , "C" , "Android" ]
x.push( "Java" )
x.push( "C++" )
imprimer (x)
imprimer (x.pop())
imprimer (x)
imprimer (x.pop())
imprimer (x)
Sortir:
['Python', 'C', 'Android', 'Java', 'C++']
C++
['Python', 'C', 'Android', 'Java']
Java
['Python', 'C', 'Android']
File d'attente
Une file d'attente suit le principe du premier entré, premier sorti (FIFO). Il est
ouvert des deux côtés, nous pouvons donc facilement ajouter des éléments à
l'arrière et pouvons retirer les éléments de l'avant.
Pour implémenter une file d'attente, nous avons besoin de deux opérations
simples :
enqueue - Il ajoute un élément à la fin de la file d'attente.
dequeue - Il supprime l'élément du début de la file d'attente.
Caractéristiques
L'ordre d'insertion de la file d'attente est conservé.
La duplication est autorisée.
Utile pour analyser les opérations des tâches CPU
Remarque : La mise en œuvre d'une file d'attente est un peu différente. Une file
d'attente suit le "First-In-First-Out". Le temps joue ici un rôle important. Le
stack est rapide car nous insérons et enlevons les éléments de la fin de la liste,
alors que dans la file d'attente, l'insertion et la supression se font à partir du
début de la liste, donc ça devient lent. La cause de ce décalage horaire est due
aux propriétés de la liste, qui est rapide en fin d'opération mais lente au début
des opérations car tous les autres éléments doivent être déplacés un par un.
Code
import queue
# La file d'attente est créée en tant qu'objet 'L'
L = file d'attente.Queue(maxsize=10)
# Les données sont insérées dans 'L' à la fin en utilisant put()
L.put(9)
L.put(6)
L.put(7)
L.put(4)
# get() prend les données de la tête de la file d'attente
print (L.get())
print (L.get())
print (L.get())
print (L.get())
Sortir:
9
6
7
4