From dc2ce18ea8e1686e61dce2b924e3607df69a2dcf Mon Sep 17 00:00:00 2001 From: Pixel <> Date: Sat, 3 Mar 2001 22:53:41 +0000 Subject: Plein de changements --- lib/PLList.cc | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) (limited to 'lib/PLList.cc') diff --git a/lib/PLList.cc b/lib/PLList.cc index 5234b91..48d294c 100644 --- a/lib/PLList.cc +++ b/lib/PLList.cc @@ -2,6 +2,23 @@ #include "config.h" #include "PLList.h" +/*****************************************************\ +* * +* File de priorité basée sur une liste chaînée triée. * +* * +\*****************************************************/ + + /* + + * Cette file de priorité a une structure non récursive. Elle se base sur + * une SList pour fonctionner. + * + */ + + + /* + * La méthode "Union" est en fait l'algorithme "Fusion" du tri-fusion. + */ PriorityList *PLList::Union(PriorityList * P) { @@ -37,6 +54,13 @@ PriorityList *PLList::Union(PriorityList * P) return this; } + + /* + * Cette méthode va "décrocher" l'élément de la liste + * et va tenter de trouver sa nouvelle place, en se déplaçant + * depuis son ancienne place vers la "gauche". + */ + bool PLList::Lower_Key(Cell x, Key_t NKey) { CList *T = ((CList *) x), *t; @@ -51,8 +75,7 @@ bool PLList::Lower_Key(Cell x, Key_t NKey) if (T->Right) T->Right->Left = T->Left; - for (t = T->Left; ((t->Left->Left) && (NKey < t->Left->Key)); - t = t->Left) ; + for (t = T->Left; ((t->Left->Left) && (NKey < t->Left->Key)); t = t->Left) ; T->Left = t->Left; T->Right = t; @@ -61,25 +84,34 @@ bool PLList::Lower_Key(Cell x, Key_t NKey) } + /* + * Toutes les autres méthodes sont "simples" (c'est à dire une lignes ou deux) + * et parlent d'elles-même. Nul besoin de commentaires pour elles. Elles se + * basent en grande partie sur la SList présente dans la structure. + */ + PLList::PLList(void) { type = T_PLLIST; Key = 0; Datas = NULL; -}; +} + PLList::~PLList(void) { delete Head.Right; -}; +} Key_t PLList::ReadKey(Cell C) { return Head.ReadKey(C); -}; +} + Datas_t PLList::ReadDatas(Cell C) { return Head.ReadDatas(C); -}; +} + int PLList::rn(void) { int n = 0; -- cgit v1.2.3