Programme en c

Nin@ -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
il faut ecrire une fonction void inverse(ptr&L1,ptr&L2)
qui empile les mots a partir d'une liste chainer dans une pile
et qui les depile dans une autre liste chaine pour avoir comme resultat
L1 = java->de->cours
L2 = cours->de->java

j'ai mem pas reusi a construir la pile
voilà ce que j'ai fait pour la pile
please please
c'est urgent
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. jeremiethe7
     
    salut, lami20j t'a normalement parfaitement aidé mais j'ai un petit programme aussi.

    #include <stdio.h>
    #include <string.h>
    #include<iostream.h>
    /*    ================================
          Gestion d'une Pile par liste cha?n?e
          Ici Pile de pr?noms, par j?r?mie obert
          ================================
    */
    /* ===========================
       d?finition du type de structure 
       qui représente un jeton de la pile 
       ===========================
       */
    typedef struct Pile{
            char prenom[20];
            struct  Pile *suivant;
    }Pile;
    
    /* ===========================
       D?finition de la t?te de pile 
       par un pointeur de pointeur
       ===========================
       */
       
    typedef Pile* ListePile;
    
    
    
    /*      ======================
            Fonction Empiler
            ======================
    */
    
    
    void empiler(ListePile *maPile, char* pre)
    /* ou void empiler(Pile **maPile, char* pre) */
    {
    /* 1) cr?er un nouveau jeton vide */
    Pile *nouveau = (Pile*) malloc(sizeof(Pile)) ; 
    /* 2) remplir le nouveau jeton par les donn?es (ici pr?nom) */
    strcpy(nouveau->prenom,pre);
    /* 3) Inserer le nouveau jeton en t?te de pile */
    nouveau->suivant=*maPile ;
    /* 4) Donner au nouveau jeton l'adresse de t?te de liste */
    *maPile = nouveau ; 
    }
    /*      ============================
            Fonction Depiler
            ============================
    */
    char* depiler(ListePile *maPile){
    /* 1) r?cup?rer les donn?es (ici le pr?nom) du jeton du haut */
    char pren[20];
    Pile *pcourant = *maPile ;
    strcpy(pren,pcourant->prenom);
    /* 2) le jeton en dessous de celui du haut devient
          le jeton du haut */
    *maPile = pcourant->suivant;
    /* 3) supprimer l'ancien jeton du haut :
       lib?rer le pointeur */
    free(pcourant);
    /* 4) renvoyer les donn?s d?pil?es (ici le pr?nom)*/
    return pren;
    }
    /* =====================================
       Fonction Principale : main()
       =====================================
    */
    int main()
    {
         /* initialiser le pointeur du sommet de la pile */
         ListePile maPile = NULL;
         /* ou Pile* *maPile=NULL; */
         /* Ajouter un jeton sur la pile : appeler
            la fonction empiler */
    	empiler(&maPile,"alain");
       	empiler(&maPile,"annie");
       	empiler(&maPile,"gilles");
    /* D?piler toute la pile : boucle sur appel de la fonction
               depiler */
       while(maPile)
       {
             char pr[20];
             strcpy(pr,depiler(&maPile));
             printf(" prenom = %s\n ",pr) ;
       }
         system("pause");
    }
    


    voilou, +
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      tant mieux ;-)
      pour un paresseux comme môa écrire un code si longue samedi ....... ;-)
      0