Salut a tous
je suis un debutant
j'aimerai savoire comment declaré une reference sur un objet
en c++ par exemple en fait:
nom_objet& nom_reference;
mais en java j'ai trouvé des problemes
Salut a tous
je suis un debutant
j'aimerai savoire comment declaré une reference sur un objet
en c++ par exemple en fait:
nom_objet& nom_reference;
mais en java j'ai trouvé des problemes
Salut,
Cela n'existe pas.
Précises ce que tu veux faire avec cela...
a++
On utilise les reference dans beaucoup de situations telque les liste, les piles, les arbre binaire.
Dans les arbre par exemple un arbre est un objet qui contient 3 attribus :
-une etiquette pour la distinction du noeud
-une reference vers le sous arbre gauche
-une reference vers le sous arbre droite
pour ne pas ce cassé la tete: ma question est:
existe t-il une maniere similaire a ce qu'on trouve en C++:
nom_objet& nom_reference;
et merci pour votre attention![]()
Je ne comprends pas bien ta question. Peux-tu expliquer ce qu'est une référence? (je suis débutant...)
Si tu cherches à faire une liste, un arbre binaire ou une pile tu peux le faire en java aussi et il existe surement des classes déja présentes dans la librairie.
Par exemple pour un arbre binaire tu peux programmer:
Peut-etre trouveras tu ta réponse dans ce code.
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 class Arbre <T>{ protected T valeur; protected Arbre<T> filsGauche, filsDroit; public T valeur() { return valeur; } public boolean existeFilsGauche() { return filsGauche != null; } public boolean existeFilsDroit() { return filsDroit != null; } public Arbre<T> filsGauche() { return filsGauche; } public Arbre<T> filsDroit() { return filsDroit; } public void affecterValeur(T c) { valeur = c; } public void affecterFilsGauche(Arbre<T> g) { filsGauche = g; } public void affecterFilsDroit(Arbre<T> d) { filsDroit = d; } public boolean feuille() { return (filsDroit==null && filsGauche==null); } public int hauteur() { int g = existeFilsGauche() ? filsGauche.hauteur() : 0; int d = existeFilsDroit() ? filsDroit.hauteur() : 0; return 1 + Math.max(g, d); } // Constructeurs public Arbre(T val) { valeur = val; filsGauche = filsDroit = null; } public Arbre(T val, Arbre<T> g, Arbre<T> d) { valeur = val; filsGauche = g; filsDroit = d; } // Affichage public void afficherPrefixe() { System.out.print(valeur+"\t"); if (existeFilsGauche()) filsGauche.afficherPrefixe(); if (existeFilsDroit()) filsDroit.afficherPrefixe(); } public void afficherInfixe() { if (existeFilsGauche()) filsGauche.afficherInfixe(); System.out.print(valeur+"\t"); if (existeFilsDroit())filsDroit.afficherInfixe(); } public void afficherPostfixe() { if (existeFilsGauche()) filsGauche.afficherPostfixe(); if (existeFilsDroit())filsDroit.afficherPostfixe(); System.out.print(valeur+"\t"); } }
Salut,
Désolé j'avais lu ton premier message un peu trop vite...
En Java c'est le passage par référence qui n'existe pas...
Pour le reste on ne manipule pas des objets ni des pointeurs mais bel et bien des références... donc pour tout ce que tu as cité tu n'as rien de particulier à faire...
a++
Merci a vous tous le code ma donné une réponse alternative.
mon probleme etait exactemenet dans l'implementation d'une arbre binaire sous java et plus précisament dans la methode d'insertion des nouveaux elements
les metohdes affecter_filsgauche et affetcer_filsdroite fera bien l'affaire Merci
![]()
Pas tout à fait :
- Il n'est pas possible de faire de l'algorithmique de pointeur ( a++ sur un pointeur pour passer à l'élément suivant du tableau...)
- En Java une référence est soit null, soit valide. Un pointeur non-initialisé en C++ peut pointer vers n'importe où en mémoire...
a++
Partager