Bonjour les gens,
pour mes études, je dois réaliser une class en Java permettant de gérer des calculs sur des ensembles, en utilisant une liste chainée
voici la class que j'ai crée:
et voici l'énoncé de ce qu'il me reste a faire:
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 public class Ensemble<T extends Comparable<T>> { private ListeChainee<T> e; public Ensemble() { e = new ListeChainee<T>(); } public boolean appartient(T x) { return rechercher( x ); } public void ajouter(T x) { if( !rechercher(x) ) { if( this.e.getTaille() <= 1 ) e.ajouterFin( x ); else e.ajouterAvant( x ); } } public void supprimer(T x) { boolean b = rechercher(x); if( b ) e.supprimerCourant(); } /* Recherche une valeur dans la liste * Place le marqueur sur l'element si il est trouvé, sur l'element de valeur superieur sinon * Revoie true si l'element est trouvé, false sinon. */ private boolean rechercher(T x) { e.placerTete(); while( !e.estFini() ) { T t = e.getElementCourant(); int r = t.compareTo(x); if( r == 0 ) return true; else if( r > 0 ) return false; else e.placerSuivant(); } return false; } public void afficher() { System.out.print( e.getTaille() + " elements : { "); e.placerTete(); while( !e.estFini() ) { System.out.print(e.getElementCourant() + " "); e.placerSuivant(); } System.out.println("}"); } }
J'ai souligné le passage qui me dérange, je ne vois pas comment mettre des fonctions utilisables dans la class (tout en gardant la généricité), j'ai essayé des:Ajoutez à l'implémentation ci-dessus les opérations suivantes sous formes de fonctions et non de méthodes ; toutes ces opérations créent un nouvel ensemble :
NB : étant donnée que ces opérations sont programmées dans l'implémentation, vous devez
tirer parti de la représentation interne et en particulier du fait que les listes sont triées
par ordre croissant pour écrire des algorithmes efficaces.
- union de deux ensembles
- intersection de deux ensembles
- différence de deux ensembles.
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static Ensemble<T> union(Ensemble<T> a, ensemble<T> b)
mais j'ai à chaque fois des erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static Ensemble union(Ensemble a, ensemble b)
Pourriez vous m'indiquer comment mettre en places ces fonctions ?
merci d'avance.
ps: si vous voyez des erreurs/améliorations de codage dans la class, je suis preneur aussi
Partager