begin process at 2012 05 28 12:20:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

ajout d'un element à la fin d'une liste chainée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ajout d'un element à la fin d'une liste chainée

vendredi 24 avril 2009 à 00:29:10 | ajout d'un element à la fin d'une liste chainée

beatkof

bonsoir je voudrai faire une fonction qui ajout un element à la fion d'une liste chainée et je n'y arrive pas voila ma fonction:
#include <stdio.h>
#include <stdlib.h>
struct chaine {
       int valeur;
       struct chaine*suivant;
       };
       typedef struct chaine*liste;
        void inserer_fin (liste l, int b);
main ()
       {liste l; liste p; int a;
       do{
              printf ("Entrer 1 entier \n");
              scanf ("%d ", &a);
              p=(liste)malloc(sizeof(struct chaine));
              p->valeur =a;
              p-> suivant = l;
              l=p;
          }
       while (a!=0);
       free (p);
       inserer_fin (l,3);
       }
       void inserer_fin (liste l, int b)
       {liste h;
       liste g;
       h-> valeur = b;
       g=l;
       while (g!=NULL){
             g=g->suivant;
             }
       h=(liste) malloc (sizeof (struct chaine));
       g=(liste) malloc (sizeof (struct chaine));
             g=h;
             g->suivant = h->suivant;
             l=g;
       free(h);
       free(g);
       }

merci pour votre aide


beatkof
vendredi 24 avril 2009 à 09:50:01 | Re : ajout d'un element à la fin d'une liste chainée

TychoBrahe

Salut,

Voici une petite version corrigée de ton code, en espérant que tu comprenne tes erreurs et que ça t'aide a mieux comprendre le principe des listes chaînées.

#include <stdio.h>
#include <stdlib.h>

typedef struct          s_liste
{
  int                   valeur;
  struct s_liste        *suivant;
}                       t_liste;

t_liste         *inserer_fin(t_liste *debut, int valeur)
{
  t_liste       *nouveau;
  t_liste       *elem;

  if ((nouveau = malloc(sizeof(*nouveau))) == NULL)
    return debut;
  nouveau->valeur = valeur;
  nouveau->suivant = NULL;
  if (debut == NULL)
    return nouveau;
  elem = debut;
  while (elem->suivant != NULL)
    elem = elem->suivant;
  elem->suivant = nouveau;
  return debut;
}

void            free_liste(t_liste *debut)
{
  if (debut != NULL)
    {
      free_liste(debut->suivant);
      free(debut);
    }
}

void            affiche_liste(t_liste *debut)
{
  int           cnt = 1;

  if (debut != NULL)
    {
      while (debut != NULL)
        {
          printf("Element %d : %d\n", cnt++, debut->valeur);
          debut = debut->suivant;
        }
    }
}

int             main(void)
{
  t_liste       *liste = NULL;
  int           a;

  do
    {
      printf ("Entrez un entier\n");
      scanf ("%d", &a);
      if (a != 0)
    liste = inserer_fin(liste, a);
    }
  while (a != 0);
  affiche_liste(liste);
  free_liste(liste);
  return 0;
}




Cette discussion est classée dans : fin, int, chaine, liste, struct


Répondre à ce message

Sujets en rapport avec ce message

Passage par adresse d'un tableau de structures. [ par alekine ] Bonjour, j'ai un problème pour passer par adresse un tableau de structures. Voilà mon code:#include #define L_MAX 2struct point //la structure d'un p Fonction recherche (listes chainées) [ par adri10 ] Bonjour à tous, Bon voilà j'ai un gros problème avec ma fonction recherche en liste chainées. Je pensais que mon programme était correct puisqu'en le Fichier + liste chainée [ par Evisu ] Bonsoir,J'ai une question concernant l'écriture et la lecture de liste chainée dans un fichier.dataJ'ai une structure PERS qui contient des infos (nom Sauvegarde d'une struct complexe vers fichier possible ? [ par nomisch ] Salut ! Dans le cadre d'un de mes projets en c++, j'ai besoin de sauvegarder la structure [b]Particle[/b] afin de pouvoir la recharger lors du redéma lecture d'une chaine au clavier :probléme d'execution! [ par infofst ] Bonjour, je suis en train d'écrire un programme qui fait des opérations sur une date saisie au clavier. la lecture de date est en language assembleu Comparaison de structures [ par mal0506 ] Salut à tous! Je veux écrire une fonction post(t1,t2) de deux arguments de type struct temps testant si le temps t1 est postérieur au temps t2. Elle Probleme Erreur de segmentation [ par sivas58 ] [color=red]Bonjour a tous; J'ai besoins d'aide sur une erreur de segmentation.[/color] [code=cpp]int decoupeLignePipe(char *chaine,char **commande1, stuctures qui s'apellent mutuellement [ par Daemonight ] Bonjour à tous, Ca fait un petit moment déjà que je me pose la question suivante : Comment faire pour que le code suivant fonctionne : [code=cpp] str Programme en c++ [ par noussa44 ] Bonjour tout le monde, j'ai besoin svp de vore aide sur un programme que j'ai fait qui permet de trier des réels dans un tableau.Mais j'ai un problèm


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,978 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales