classe de pile fifo

Soyez le premier à donner votre avis sur cette source.

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; }
		
	}​

 


Imprimer   E-mail

Ajouter un Commentaire


Code de sécurité
Rafraîchir