ajout dossier Pile et File
This commit is contained in:
139
Pile_File/TP/File.py
Normal file
139
Pile_File/TP/File.py
Normal file
@@ -0,0 +1,139 @@
|
||||
#PARTIE
|
||||
class File1 :
|
||||
|
||||
def __init__(self,liste = []) :
|
||||
"""
|
||||
Méthode d'initialisation
|
||||
param liste : (List) Liste d'élément à enfiler dès l'initialisation
|
||||
"""
|
||||
self.file = liste
|
||||
|
||||
def enfile(self,x) :
|
||||
"""
|
||||
Méthode qui enfile un élément x
|
||||
param x : () Elément x à enfiler
|
||||
"""
|
||||
self.file = [x] + self.file
|
||||
|
||||
def defile(self) :
|
||||
"""
|
||||
Méthode qui defile un élément de la file
|
||||
return : (bool/ ) False si impossible de retirer l'élément / Elément sinon
|
||||
"""
|
||||
if not self.est_vide() :
|
||||
return self.file.pop()
|
||||
else :
|
||||
return False
|
||||
|
||||
def est_vide(self):
|
||||
"""
|
||||
Méthode testant la longueur de la file
|
||||
return : (bool) True si la file est vide, False sinon
|
||||
"""
|
||||
return len(self.file) == 0
|
||||
|
||||
def taille(self):
|
||||
"""
|
||||
Méthode retournant la taille de la file
|
||||
return : (int) taille de la file
|
||||
"""
|
||||
return len(self.file)
|
||||
|
||||
def get_file(self):
|
||||
"""
|
||||
Méthode retournant la file sous forme de liste pour en avoir un aperçu
|
||||
return : (list) file sous forme de list
|
||||
"""
|
||||
return self.file
|
||||
|
||||
# EXERCICE 2
|
||||
|
||||
def ajout_element(self,element):
|
||||
"""
|
||||
Fonction qui ajoute un élément, si la taille le permet.
|
||||
return (bool): Renvoie True si l'ajout de l'élément a eu lieu, False sinon
|
||||
"""
|
||||
if file.taille() < 5 :
|
||||
file.enfile(fichier)
|
||||
return True
|
||||
else :
|
||||
return False
|
||||
|
||||
def vide_file(self):
|
||||
"""
|
||||
Fonction qui vide une file et affiche ces éléments
|
||||
"""
|
||||
while file.est_vide() == False :
|
||||
e = file.defile()
|
||||
print(e)
|
||||
|
||||
# PARTIE 3 :
|
||||
|
||||
class File2 :
|
||||
|
||||
def __init__(self,tete = None,queue = None):
|
||||
"""
|
||||
Méthode d'initialisation
|
||||
param tete : () Element a mettre en tete de file
|
||||
param queue : (File) queue de la file (élements suivants)
|
||||
"""
|
||||
self.tete = tete
|
||||
self.queue = queue
|
||||
|
||||
def enfile(self,x) :
|
||||
"""
|
||||
Méthode qui enfile un élément x
|
||||
param x : () Elément x à enfiler
|
||||
"""
|
||||
self.queue = File2(self.tete,self.queue)
|
||||
self.tete = x
|
||||
|
||||
def defile(self) :
|
||||
"""
|
||||
Méthode qui defile un élément de la file
|
||||
return : (bool/ ) False si impossible de retirer l'élément / Elément sinon
|
||||
"""
|
||||
if self.est_vide() :
|
||||
return False
|
||||
if self.queue == None :
|
||||
val = self.tete
|
||||
self.tete = None
|
||||
return val
|
||||
elif self.queue.queue == None :
|
||||
val = self.queue.tete
|
||||
self.queue = None
|
||||
return val
|
||||
else :
|
||||
return self.queue.defile()
|
||||
|
||||
def est_vide(self) :
|
||||
"""
|
||||
Méthode testant la longueur de la file
|
||||
return : (bool) True si la file est vide, False sinon
|
||||
"""
|
||||
return self.queue == None and self.tete == None
|
||||
|
||||
def taille(self):
|
||||
"""
|
||||
Méthode retournant la taille de la file
|
||||
return : (int) taille de la file
|
||||
"""
|
||||
if self.queue == None :
|
||||
return 1
|
||||
else :
|
||||
return 1 + self.queue.taille()
|
||||
|
||||
def get_file(self):
|
||||
"""
|
||||
Méthode retournant la file sous forme de liste pour en avoir un aperçu
|
||||
return : (list) file sous forme de list
|
||||
"""
|
||||
if self.queue != None :
|
||||
return [self.tete] + self.queue.get_file()
|
||||
else :
|
||||
return [self.tete]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user