-
Notifications
You must be signed in to change notification settings - Fork 2
/
Listable.cpp
49 lines (37 loc) · 1017 Bytes
/
Listable.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
Zelda Return of the Hylian
Copyright (C) 2005-2008 Vincent Jouillat
Please send bugreports with examples or suggestions to www.zeldaroth.fr
*/
#include "Listable.h"
Listable::Listable() : suivant(0), id(0) {
}
Listable::~Listable() {
delete suivant;
}
int Listable::size() {
if (suivant == 0) return 0;
return (suivant->size() + 1);
}
void Listable::ajout(Listable* l) {
if (suivant == 0) {
suivant = l;
suivant->id = id + 1;
delete suivant->suivant; // au cas où on a donné une liste au lieu d'un élément
}
else suivant->ajout(l);
}
void Listable::enleve(Listable* l) {
if (suivant == 0) return;
if (l == suivant) {
Listable* tmp = suivant->suivant;
suivant->suivant = 0; //pour éviter suppressions récursives
delete suivant;
suivant = tmp;
}
else suivant->enleve(l);
}
bool Listable::operator==(const Listable* l) {
return (id == l->id);
}
int Listable::getListId() {return id;}