Aidez moi SVP "Java"

Aidez moi SVP "Java" - Java - Programmation

Marsh Posté le 12-11-2014 à 02:07:29    

Bonjour,  
 
J'ai réussi à faire la premiere question sachant que je ne suis pas sur si c'est bon ou pas .  
pour le reste j'ai trop galéré du coup j'aimerai avoir votre point de vue s'il vous plaît.  
Merci d'avance ^^  
 
 
 
 
 
Voici deux exemples de l’utilité de cette structure :  
- Associer des numéros de carte d’étudiant à des noms d’étudiants :  
<(3459, « Jean Dupont »), (8491, « Marie Martin »),…>  
(C = Integer, V = String)
- Associer des numéros d’IP à des infos d’utilisateurs :  
<(« 238.124.22.53 », « Thomas Dubois, 11 rue des graviers, Rennes »),  
(« 74.125.136.99 », « Google, 1600 amphiteatre parkway, MountainView »),…>
On vous fournit une classe abstraite (c.a.d. que vous ne pouvez que la sous-classer)  
TableCorrespondance :
public abstract class TableCorrespondance<C extends Comparable<C>, V> {
/**
* Crée une association entre une clé et une valeur.  
* Si une association (cle, autre valeur) existe déjà, elle est écrasée.  
*  
* @param cle Clé de l'association, supposée non nulle
* @param valeur Valeur de l'association, supposée non nulle
*/
public abstract void associe(C cle, V valeur) ;
/**
* Supprime l'association (cle, valeur) si elle existe, sinon ne fait  
rien
*  
* @param cle
*/
public abstract void supprime(C cle) ;
/**
* Renvoie la valeur associée à la clé indiquée.
*  
* @param cle Clé à rechercher
* @return Valeur associée à cle, null sinon
*/
public abstract V get(C cle) ;
}
 
1. Ecrivez une sous-classe TCList de TableCorrespondance. TCList doit implémenter  
toute les méthodes de TableCorrespondance en exploitant un ArrayList des  
collections standard Java. Vous pourrez, pour vous aider, créer une classe interne Paire ou  
exploiter la classe correspondante fournie par Java (à vous de la trouver).  
 
2. Fournissez des jeux de test pour les différentes méthodes de TCList<String, Integer>.
 
3. Ecrivez maintenant une sous-classe TCTree de TableCorrespondance. TCTree doit  
implémenter toute les méthodes de TableCorrespondance en utilisant un arbre binaire  
de recherche (vu en cours) sur les clés. Vous devez implémenter vous-même l’arbre binaire  
de recherche, et ne pas recourir aux collections standard Java.  
NB : la suppression vous demandera un peu de réflexion. La page wikipedia sur les arbres  
binaires de recherche vous donnera la méthode à suivre, à vous de l’implémenter.  
 
4. Fournissez des jeux de test pour les différentes méthodes de TCTree<String, Integer>.
 
5. Comparez la performance de vos deux implémentations de tables de correspondances :
- Mesurez le temps de 1 000 000 d’insertions de couples de nombres aléatoires  
compris entre 1 et 1 000 000.
- Mesurez ensuite le temps moyen d’accès (= get) pour 1 000 000 d’accès à des valeurs  
aléatoires entre 1 et 1 000 000.
- Reportez les valeurs et discutez les résultats
- Les expériences précédentes utilisent N = 1 000 000 d’accès/insertions. Si vous en  
avez le temps, essayez avec d’autres valeurs de N, et dessinez vos résultats dans des  
courbes avec les valeurs de N en abscisse et les valeurs de temps (temps d’insertion,  
temps moyen d’accès) en ordonnée. Commentez ces courbes.

Reply

Marsh Posté le 12-11-2014 à 02:07:29   

Reply

Marsh Posté le 12-11-2014 à 04:33:59    

Bonjour,
 
Mon point de vue c'est que d'une c'est super facile, et de deux ca va rien t'apprendre si on te file une reponse toute faite (sauf si l'info tu t'en tapes pour ta vie future, mais dans ce cas je comprends pas trop pourquoi tu essaies de resoudre un exo de programmation).
 
Fais voir ce que tu as fait, expliques ou tu bloques et la ca servira peut-etre a quelque chose de t'aider.
 
Hint: si tu as vraiment fait la question 1, pour savoir si "c'est bon ou pas", tout ce que tu as a faire c'est d'appeler les differentes methodes et de verifier que ca fait bien ce qui est attendu (ca s'appelle des tests unitaires). Pour faire ca, tu vas devoir appeler les methodes dans un certain ordre et avec certaines valeurs, prises au pif ou pas, pour verifier chaque scenario "de base" (y se passe quoi si j'insere, si j'insere puis j'enleve, si j'insere deux fois la meme cle avec des valeurs differentes, etc.) -> c'est ca ton jeu de test pour la question 2.


---------------
C'était vraiment très intéressant.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed