C# classe de pile fifo

Contenu du snippet

bonjour à tous !

Voilà je me suis fais une petite classe qui me sert à faire une pile fifo (First In First Out).
Les utilisations peuvent être diverses, pour ma part je l'utilise pour récupérer les n dernières lignes d'un gros fichier (> 20Go).
On peu facilement l'ajouter par exemple dans une pile de connection, d'instructions, etc.

A noter que c'est une pile d'object et donc que la valeur à retourner sera à caster.

	public class PileFifo
{
int iTaille = 0;
int curseur = 0;
object[] maPile;
public PileFifo(int taille)
{
if(taille <= 0)
throw new Exception("erreur : la taille paramétrée doit être supérieur à 0");

iTaille = taille;
maPile = new object[iTaille];
}
public object add(object o)
{
if (curseur == iTaille)
{
object toReturn;
curseur--;
toReturn = maPile[curseur];
for (int i = curseur; i > 0; i--)
{ maPile[i] = maPile[i - 1]; }
maPile[0] = o;
curseur++;
return toReturn;
}
else
{
for (int i = curseur; i > 0; i--)
{ maPile[i] = maPile[i - 1]; }
maPile[0] = o;
curseur++;
return null;
}
}
public object get()
{
if (curseur == 0) return null;

object toReturn = maPile[curseur-1];
maPile[curseur-1] = null;
curseur--;

return toReturn;
}

public object[] getAll()
{ return maPile; }

}


Si vous avez des commentaires, amélioration, etc. je suis preneur ;)

Naga

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.