#include <stdio.h> #include "config.h" #include "PCommon.h" /* * Toutes les m�thodes �crites dans ce module sont communes � toutes * les files de priorit�s. Il s'agit de la classe "P�re" dont h�ritent * toutes les autres files de priorit�s. Nous ne trouverons ici que * les constructeurs n�cessaires pour la bonne op�ration sur les files, * ainsi que les deux routines g�n�riques n et GenericUnion. * */ PriorityList::PriorityList(Key_t IKey, Datas_t const &IDatas):Key(IKey), Datas(IDatas) { } PriorityList::PriorityList(void):Key(0), Datas(NULL) { } PriorityList::~PriorityList(void) { } /* * Renvoie le nombre d'�l�ments dans la file. */ int PriorityList::n(void) { return Key; } /* * Effectue un union g�n�rique entre deux files de type diff�rents. * Cette fonction va d�piler la deuxi�me file �l�ment par �l�ments * et va les ins�rer dans la premi�re. */ PriorityList *PriorityList::GenericUnion(PriorityList * P) { Key_t IKey; Datas_t IDatas; while (!(P->IsEmpty())) { IKey = P->Extract_Min(IDatas); Insert(IKey, IDatas); } return this; } /* * Renvoie une constante sur le type de la file. Ce type est initialis� * par le constructeur des files. */ int PriorityList::GetType(void) { return type; } Key_t PriorityList::ReadKey(Cell C) { return ((PriorityList *) C)->Key; } Datas_t PriorityList::ReadDatas(Cell C) { return ((PriorityList *) C)->Datas; }