Bonjour ~
J'ai un probleme sur une méthode. J'ai une entreprise à laquelle je dois ajouter une autre entreprise (acquisition ) qui range ensuite les éléments de cette nouvelle entreprise dans l'ordre croissant de salaires, et ensuite par ordre alphabétique.
J'utilise pour ca des listes chainées sans utiliser les linkedlist mais rien à faire! je n'arrive pas a ajouter les éléments à la premiere entreprise..
Voici le code :
classe cellule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 class Entreprise { Cellule petitSalaire; Cellule petitNom; public Entreprise() { this.petitSalaire = null; this.petitNom = null; } public Entreprise(Employe e) { this.petitSalaire = new Cellule(e); this.petitNom = new Cellule(e); } public void ajout(Employe empi) { Cellule c1 = new Cellule(empi); if(this.petitSalaire != null) { if(this.petitSalaire.emp.getSalaire() > c1.emp.getSalaire()) { c1.suivanteSalaire = this.petitSalaire; this.petitSalaire = c1; } Cellule c; for(c = this.petitSalaire; c != null; c = c.suivanteSalaire) { if(c.emp.getSalaire() < c1.emp.getSalaire() && c.suivanteSalaire == null) { c.suivanteSalaire = c1; } if(c.emp.getSalaire() < c1.emp.getSalaire() && c.suivanteSalaire.emp.getSalaire() > c1.emp.getSalaire()) { c1.suivanteSalaire = c.suivanteSalaire; c.suivanteSalaire = c1; } } } else this.petitSalaire = c1; } public void ajoutNomSalaire(Employe empi) { Cellule a = this.petitNom; Cellule c = new Cellule(empi); this.ajout(c.emp); if(this.petitNom == null) { this.petitNom = c; } else { while(a != null) { if(a.suivanteNom == null) { a.suivanteNom = c; break; } if(c.emp.getNom().compareTo(a.emp.getNom()) > 0 && c.emp.getNom().compareTo(a.suivanteNom.emp.getNom()) < 0) { c.suivanteNom = a.suivanteNom; a.suivanteNom = c; break; } a = a.suivanteNom; } } } public void acquisition(Entreprise e) { for(Cellule c = e.petitSalaire; c != null; c = c.suivanteSalaire) { this.ajoutNomSalaire(e.petitSalaire.emp); } }
j'ai simplement mis les méthodes liées au probleme (sachant que toutes les autres fonctionnent a part ce fichu acquisition).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Cellule { Employe emp; Cellule suivanteNom; Cellule suivanteSalaire; public Cellule(Employe e) { this.emp = e; this.suivanteNom = null; this.suivanteSalaire = null; } }
Voila merci de votre eventuelle aide
Partager