Title: Piles
1Piles
- Premier arrivé, dernier servi
- LIFO (Last In, First Out)
- Liste à usage restreint Enlève et insère un
élément seulement à un bout de la liste. - Notation
- Insérer EMPILER (PUSH)
- Enlever DÉPILER (POP)
- Lélément accessible est DESSUS (TOP)
-
2Pile TDA
- // Pile Type de donné abstrait
- template ltclass Elemgt StackltElemgt
- public
- virtual void clear() 0
- virtual bool push(const Elem) 0
- virtual bool pop(Elem) 0
- virtual bool topValue(Elem) const 0
- virtual int length() const 0
3Pile avec tableau
- // Implémentation avec tableau
- template ltclass Elemgt class Astack
- public StackltElemgt
- private
- int size
- int top
- Elem listArray
- public
- AStack(int sz 1000)
- size sz top 0
- listArray new Elemsz
- AStack() delete listArray
- void clear() top 0
4Pile avec tableau(2)
- bool push(const Elem item)
- if (top size) return false
- else listArraytop item
- return true
-
- bool pop(Elem it)
- if (top 0) return false
- else it listArray--top return true
-
- bool topValue(Elem it) const
- if (top 0) return false
- else it listArraytop-1 return true
-
- int length() const return top
5Pile avec liste chaînée (1)
- template ltclass Elemgt class LStack
- public StackltElemgt
- private
- LinkltElemgt top
- int size
- public
- LStack(int sz DefaultListSize)
- top NULL size 0
- bool push(const Elem item)
- top new LinkltElemgt(item, top)
- size
- return true
-
6Pile avec liste chaînée(2)
- bool pop(Elem it)
- if (size 0) return false
- it top-gtelement
- LinkltElemgt ltemp top-gtnext
- delete top
- top ltemp
- size--
- return true
-
- bool topValue(Elem it) const
- if (size 0) return false
- it top-gtelement
- return true
-
7File dattente (queue)
- Premier arrivé, premier servi
- FIFO (First in, First Out)
- Liste à usage restreint Enlève à un bout et
ajoute à lautre. - Notation
- Insérer (Enqueue)
- Enlever (Dequeue)
- Premier élément Avant
- Dernier élément Arrière
8Queue Implémentation (1)
9Queue Implémentation (2)
10Queue TDA
// Queue type de donné abstrait template ltclass
Elemgt class Queue public virtual void
clear() 0 virtual bool enqueue(const Elem)
0 virtual bool dequeue(Elem) 0
virtual bool frontValue(Elem) const 0
virtual int length() const 0
11Queue Tableau
// Queue Implémentation avec tableau template
ltclass Elemgt class AQueue public QueueltElemgt
private int size int
front int rear
Elem listArray public
AQueue(int sz DefaultListSize) size
sz1 rear 0 front 1 listArray
new Elemsize AQueue() delete
listArray void clear() front rear
12Queue Tableau
bool enqueue(const Elem it) if
(length()size-1) return false rear
(rear1) size listArrayrear it
return true bool dequeue(Elem it)
if (length() 0) return false // Empty it
listArrayfront front (front1) size
return true
13Queue Tableau
bool frontValue(Elem it) const if
(length() 0) return false it
listArrayfront return true virtual
int length() const return ((rearsize) -
front 1) size