Vider et modifier une liste

Fermé
JA***8 - 8 nov. 2008 à 05:09
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 10 nov. 2008 à 10:41
Bonjour,
je voudrais avec JAVA savoir comment vider une liste et comment modifier (c est a dire faire une Mise à jour de l'élément spécifié en paramètre retourner true si lelement a ete trouvé et modifier et false sil nexiste pas) avec une liste simplement chainee

mes methodes commence ainsi :

public void vider(){

public boolean modifier(T element){
A voir également:

2 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
8 nov. 2008 à 11:11
Bonjour Ja***8,
Regardes du côté de la classe LinkedList de l'API (implémentation de la liste chaînée) : https://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html

Les méthodes dont tu as besoin sont:
- remove (toutes les méthodes sont utilisables, ça dépend comment tu veux implémenter ça)
- indexOf pour récupérer l'index de ton objet (ou -1 s'il n'appartient pas à ta liste)
- get (pour récupérer l'objet stocké à l'index passé en paramètre)

Bon courage
0
JAV****8 Messages postés 2 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008
9 nov. 2008 à 07:24
merci pour ta reponse g u un travail ou g devais les utiliser, entou-k ces dif methodes(indexOf, get) mon servi merci encore, je voulais te poser une otre kestion si ge devais utiliser une liste simplement chainee avec une remorque de fin de liste pour faire ces methodes :

qui vide la liste de ces elements

public void vider(){



Mise à jour de l'élément spécifié en paramètre return true si element trouvé et modifié, ou false si l'élément n'existe pas ou si liste vide)


public boolean modifier (T element){(Mise à jour de l'élément spécifié en paramètre return true si element trouvé et modifié, ou false si l'élément n'existe pas ou si liste vide)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328 > JAV****8 Messages postés 2 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008
9 nov. 2008 à 12:29
Bonjour,
Je ne comprends pas très bien ta question.
Qu'appelles-tu une liste simplement chainee avec une remorque de fin de liste ?

Cordialement,
0
JAV****8 Messages postés 2 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 10 novembre 2008
10 nov. 2008 à 03:59
BONJOUR juste te presenter le sujet dexo ou utiliser une liste simplement chainee avec remorque

La classe ListeChainee implantera les services de gestion d’une liste qui sont définis par l’interface TDAListe (disponible
sur le site web du cours). De plus, elle implantera chacun des services annoncés au niveau de l’interface en utilisant
une liste simplement chainée avec une remorque de fin de liste. La classe Nœud est disponible sur le site. Ainsi, il n’y
aura aucune utilisation des services de la classe ArrayList. De plus, aucune classe préfabriquée de Java (ex : LinkList) de
peut être utilisée.


(la classe Noeud)
public class Noeud<T>
{
private T element; // référence vers l'élément stocké dans le noeud
private Noeud<T> suivant; // référence vers le noeud suivant

// constructeurs
/**
* Creation d'un objet Noeud
* La reference vers l'élément paramètre est initialisée
* @param element reference vers l'objet qui sera stocké dans le noeud
*/
public Noeud (T element)
{
this (element, null); // appel d'un autre constructeur
} // Noeud

/**
* Creation d'un objet Noeud à vide
* les champs element et suivant seront initialisés à null
*/
public Noeud ()
{
this (null, null); // appel d'un autre constructeur

} // Noeud

/**
* Creation d'un objet Noeud
* La reference vers l'élément paramètre est initialisée
* @param element reference vers l'objet qui sera stocké dans le noeud
* @param suivant reference vers le noeud suivant
*/
public Noeud (T element, Noeud<T> suivant)
{
this.element = element;
this.suivant = suivant;
}

/**
* Retourner la référence vers l'élément contenu dans le noeud
* @return reference vers l'objet element
*/
public T obtenirElement ()
{
return this.element;

} // obtenirElement

/**
* Obtenir la référence vers le noeud suivant
* @return reference vers le noeud suivant, peut être nulle
*/
public Noeud<T> obtenirSuivant ()
{
return this.suivant;

} // obtenirSuivant

/**
* mise à jour du champ suivant avec la reference vers un autre noeud
* @param la référence vers le noeud
*/
public void majSuivant (Noeud<T> unNoeud)
{
this.suivant = unNoeud;

} // majSuivant

/**
* mise à jour du champ element avec la réference vers un élément de donnée
* @param element reference vers l'élément
*/
public void majElement (T element)
{
this.element = element;

} // majElement

} // Noeud


(l INTERFACE)

public interface TDAListe<T>
{
/**
* Verification si la liste contient ou non des élements
* @return true si la liste est vide, sinon false
*/
public abstract boolean estVide ();

/**
* Retirer tous les élements de la liste. La liste sera vide
*
*/
public abstract void vider ();

/**
* Retourne le nombre d'éléments de la liste
* @return Nombre d'élements (int)
*/
public abstract int taille ();

/**
* Insere l'élément en tete de la liste
* @return true si element inseré ou false s'il y a eu un probleme
*/
public abstract boolean insererTete (T element);

/**
* Insere l'élément à la fin de la liste
* @return true si element inseré ou false s'il y a eu un probleme
*/
public abstract boolean insererFin (T element);

/**
* Insere l'élément en ordre croissant (avec compareTo)
* @return true si element inseré ou false si l'élément est déjà present
*/
public abstract boolean insererEnOrdre (T element);

/**
* Retirer de la liste l'élément spécifié en paramètre
* @return la référence de l'objet retiré, ou null si l'élément n'existe pas
* ou si liste vide
*/
public abstract T retirer (T element);

/**
* Mise à jour de l'élément spécifié en paramètre
* @return true si element trouvé et modifié, ou false si l'élément n'existe pas
* ou si liste vide
*/
public abstract boolean modifier (T element);

/**
* Localiser si l'élement parametre existe dans la liste
* @return true si element trouvé dans la liste ou false si inexistant
* ou si liste vide
*/
public abstract boolean localiserElement (T element);

/**
* Retourne la reference de l'objet en début de liste
* @return reference de l'objet ou null si liste vide
*/
public abstract T premier ();

/**
* Retourne la reference de l'objet en fin de liste
* @return reference de l'objet ou null si liste vide
*/
public abstract T dernier ();

/**
* Retourne la reference de l'élement de la liste qui suit
* celui spécifié en paramètre
* @return la référence de l'objet suivant ou null si liste vide ou fin de la liste
*/
public abstract T successeur (T element);

/**
* Retourne la reference de l'élement de la liste qui précède
* celui spécifié en paramètre
* @return la référence de l'objet suivant ou null si liste vide ou début de la liste
*/
public abstract T predecesseur (T element);


} // TDAListe

MERCI!!!
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
10 nov. 2008 à 10:41
Bonjour,
Tout cela ne m'explique pas ce qu'est "une remorque de fin de liste".
Tel que je le comprends, la remorque est juste un pointeur vers le dernier élément de ta liste, mais son utilisation dans l'implémentation d'une liste simplement chaînée est une aberration, car son utilisation ne fait qu'augmenter la complexité de tes algorithmes.

Cordialement,
0