Retour vers: Insertion d’un élément
Suppression d’un élément dans une file à une position donnée
Le problème revient à supprimer une place p après avoir parcouru p-1 position d’une file de n éléments. Le schéma de programme correspondant supprimerPosition est formé par la séquence de trois actions:
- Copie des p-1 premiers éléments de la file
- Lecture sans copie du p ième élément
- Copie des n-p derniers élémements
func SupprimerParPosition(file1: File_Entier ,inout file2: File_Entier ,position: Entier) -> Bool { var nouvelleCollection: File_Entier = InitialiserCollection() var index = 1 Premier(file1) while (Infer(index, element: position)) && (!Dernier(file1)) { index = PlusUn(index) nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file1)) Avancer(file1) } if (Egal(index, element: position)) && (!Dernier(file1)) { Avancer(file1) // pour supprimer par increment du curseur while !Dernier(file1) { nouvelleCollection = Ranger(nouvelleCollection, element: Prendre(file1)) Avancer(file1) } file2 = nouvelleCollection return true } file2 = file1 return false }
Supprimer un élément par valeur
func SupprimerParValeur(file1: File_Entier
,inout collection2: File_Entier
,valeur: Entier) -> Bool {
var nouvelleFile: File_Entier = InitialiserCollection()
var trouve = false
Premier(file1)
while (!trouve) && (!Dernier(file1)) {
if Egal(valeur,element: Prendre(file1)) {
trouve = true
} else {
nouvelleFile = Ranger(nouvelleFile, element: Prendre(file1))
}
Avancer(file1)
}
if trouve {
while !Dernier(file1) {
nouvelleFile = Ranger(nouvelleFile, element: Prendre(file1))
Avancer(file1)
}
collection2 = nouvelleFile
return trouve
}
collection2 = file1
return trouve
}