begin process at 2008 08 29 23:01:18
1 233 930 membres
450 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : clonage de liste chainée et suppression [ Archives / Maths & Algorithmes ] (avillenave)

clonage de liste chainée et suppression le 27/06/2005 16:44:13

avillenave
Bonjour,

Je développe actuellement en C, un algo de recuit simulé avec un calcul d'entropie

J'ai un tableau de liste chainée

Bon, dans cet algo, je dois recreer une copie exacte de ce tableau de liste chainée. Et le clone je dois déplacer un élément d'une liste vers une autre liste du tableau.

J'obtiens donc 2 liste != et je les compare par un calcul

je garde le meilleur et je veux supprimer le deuxieme tableau pour gagner en memoire (et en plus ce sont des enormes listes)


en clair, dans mon code j'ai l'impression que ma copie et ma suppression est fausse. Pourrize vous me proposer une version ? j'arrive a trouver une methode de clonage ( a part dans stars wars mais g pas la bibliotheque starwars.h )

Hell me you are my only hope !


PS: ma liste chainé est a sens unique

typedef struct elt{
MOT *valeur ;
struct elt *suiv ;
}element ;





Visual Bubble

Re : clonage de liste chainée et suppression le 27/06/2005 21:35:26

Pamaury
bah pour cloner:

bool Clone(element *head,element *new_head)
{
    element *ptr;

    ptr=(element *)malloc(sizeof(element));
    if(ptr==NULL)
        return false;
    ptr->valeur=head->valeur;
    new_head=ptr;
   
    ptr=ptr->suiv;
    head=head->suiv;

    while(head)
    {
       ptr->suiv=(element *)malloc(sizeof(element));
        if(ptr->suiv==NULL)
            return false;
       ptr=ptr->suiv;
       ptr->valeur=head->valeur;
       head=head->suiv;
    }
    return true;
}

çà doit marcher

bool free(element *head)
{
    element *ptr=head;
    element *ptr2;

    while(ptr)
    {
       ptr2=ptr->suiv;
       free((void *)ptr);
       ptr=ptr2;
    }
    return true;
}
A m a u r y


Classé sous : liste, tableau, suppression, chainée, clonage

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS