Algorithme LISTE CIRCULAIRE

Fermé
youkisall Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
J ai besoin d'aide pour cette question

L'algorithme qui divise une liste circulaire de n noeuds, ou n est un nombre pair en deux listes circulaires de
n/2 noeuds chacune.

Merci.

la suite d el exercice est de chercher un elemt X et un autre y dans les 2 differents listes obtenus apres la separation mais ca je sais comment le faire je pense j'ai commecé mon code comme suit :
courant = teteListe;
while(courant->suivant && !Trouve)
{
if(courant->suivant->data > AInserer->data)
Trouve = 1;
else
courant = courant->suivant;
}

Mais aucune idee sur comment diviser la liste circulaire merci d evotre aide
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

tu crées un liste circulaire en insérant les éléments de 1 à n/2 éléments et une liste en insérant les éléments de n/2+1 à n

Un code générique, à toi d'adapter
Liste *L1;
Liste *L2;

Liste *DiviserListe(Liste *L, int min,int max){
    Liste *pL, *new_L;
    pL = L;
    for(i=min;i<=max;++i){
      InsertionListe(new_L,pL->data);
      pL=pL->suivant;
    }
    return new_L;
}

L1 = ListeDiviserListe(L,1,n/2);
L2 = ListeDiviserListe(L,n/2+1,n);
1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

je vais fermer ce thread
continue sur le message initial
merci
-1