Bonsoir, il y a cet exercice dans le langage Java .. Et voila mon code.. Pouvez-vous me dire si j'ai bien compris la donnée? Je dois encore améliorer mon code mais avant je veux savoire si mon raisonnement est correct. Merci d'avance.
Voila la donnée :
On désire compléter l’implémentation suivante de la structure de données liste simplement chainée
circulaire dont les éléments sont des entiers.
public class CircularLinkedList {
class Element{
int data;
int next;
public Element(int value){
data = value;
next = this;
}
private Element head;
//... suite du code
}
Sans ajouter des attributs à la classe CircularLinkedList, on vous demande d’implémenter les méthodes
suivantes :
1) Méthode qui retourne le nombre d'éléments de la liste.
2) Méthode qui supprime de la liste courante toutes les occurrences d’une certaine valeur reçue en
argument. La méthode doit retourner le nombre d’éléments supprimés (0 si la valeur n’existe
pas dans la liste!)
Voila mon code:
Code:public class CircularLinkedList { class Element { int data; Element next; public Element(int value){ data=value; next=this; }} private Element head; public int size(){ int count=1; Element p=head; if(head==null)return 0; { while(p.next!=head){ p=p.next; count++; }}return count; } public boolean isEmpty(){ return (head==null); } public int remove (int value){ if(isEmpty()){ return -1; } if(head.data==value){ if(head.next==head){ head=null; }else { head=head.next; } } } return -1;} Element p=head; while(p.next!=0 && p.next!=value){ p=p.next; } if(p.next==value){ p.next=p.next.next;} }
mais il y a une chose, dans la donnée ils ont précisé next en int et ils ont introduit this.. Je ne l'ai pas très bien compris.. Ca doit etre element pas vrai? C'est comme si la classe element ici joue le role de la classe noeud dans la liste.. C'est pour cela je l'ai changé dans mon code.
-----