begin process at 2012 05 28 23:28:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Creation d'une liste doubement chainée en C


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

Creation d'une liste doubement chainée en C

jeudi 22 janvier 2009 à 16:31:13 | Creation d'une liste doubement chainée en C

komanetchi

Bonjour tout le monde,
Je viens de commencer a programmer en C.
Il faut que je cré une liste doublement chainée et je l'affiche.
J'ai pris un code d'internet et je l'ai adapter a mes besoins.
Je ne comrend pas ce qui se passe lors de la compilation: il ya 0erreurs et 4 warning
mais lorsque j'execute a mehode "ajouter element"
le programme s'arret en m'affichant Debug error!!
runtime error!!
Que dois je faire!!
J'ai vraiment besoin d'une aide!

voici le code .h

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

typedef struct objet
       {
           int data[2];
           struct objet *suivant;
           struct objet *precedent;
} objet;

objet *CreeListeVide();
int InsertionObjet(objet *,objet );
void AfficheListe(objet * );





voici le code . cpp

# include "MOMBS.h"


objet *CreeListeVide() {
objet * sentinelle;

sentinelle = (objet *)malloc(sizeof(objet));

sentinelle->precedent = sentinelle;
sentinelle->suivant = sentinelle;
sentinelle->data[0] = 0;
sentinelle->data[1] = 0;


return sentinelle;
}

void AfficheListe(objet* tete)
{

objet *temp=tete->suivant;
if(tete->suivant==tete)
printf(" la liste est vide\n");
else

while(temp!=tete)
{
printf("%d\n",temp->data[0]);
printf("%d\n",temp->data[1]);

temp=temp->suivant;
}
}


int InsertionObjet(objet *tete,objet nouvo)
{
 objet* temp;
 objet* acree;
 int comp=-1,i;

 acree=(objet*)malloc(sizeof(objet));
 acree=tete->suivant;
 
/* *acree=nouvo; */

 for (i=0; i<2 ; i++)
                {
                 acree->data[i]=nouvo.data[i];
                }
 acree->suivant=nouvo.suivant;
 acree->precedent=nouvo.precedent;


 //while(strcmp(temp->nom,acree->nom)<0 && temp!=tete)
 //{
 // temp=temp->suivant;
 //}
 //if(strcmp(temp->nom,acree->nom)==0)
  //     {
 //      printf("ce nom est deja engistre\n");
 //    free(acree);/* point*/
 //    return comp ;
 //     }
 //else
 //    {
       acree->suivant=temp;
       acree->precedent=temp->precedent;
       (acree->precedent)->suivant=acree;
       temp->precedent=acree;
       comp=0;


 return comp;    
}

 

void remp(objet* tete)
{
 int i,n,ko;
 objet inter;
 printf("combien d'items vous voulez ajouter?\n");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
 printf(" The weight :\n");
 scanf("%d",&(inter.data[0]));
 printf("The priority:\n");
 scanf("%f",&(inter.data[1]));
 ko=InsertionObjet(tete,inter);
 }
AfficheListe(tete);
}

 

 

 


int Menu()
{
    int Choix;
   

    printf("1)Ajouter un element\n");
    printf("2)Afficher le contenu d'une liste\n");
//    printf("3)Vider une liste\n");
//    printf("4)Supprimer un element\n");
//    printf("5)Rechercher un element\n");
//    printf("6)Fusion de 2 listes\n");
//    printf("7)Charger un fichier\n");
    printf("8)Quitter\n");
    printf("Saisir votre choix:");

    scanf("%d",&Choix);

    while (Choix < 1 || Choix > 8)
    {
       printf("Votre choix doit etre compris entre 1 et 8.\n");
       printf("Saisir votre choix:");
       fflush(stdin);
       scanf("%d",&Choix);
    }
    return Choix;
}

 

int main()
{
 int ko,choix;
 objet *tete1,*tete2,nouv;
 
 tete1=CreeListeVide();

  choix=14;

 
while(choix!=8)
     {
 if(choix==1)
      remp(tete1);
 else

      if(choix==2)
      AfficheListe(tete1);


choix=Menu();
     } 
return 0;
}
J'ai chercher un code sur internet pus simle mais je n'ai pas trouvé!!
Si vous avez un que vous pouvez me suggérer, je vous serais tres reconnaissable!!
J'en ai vraiment besoin
Merci



Cette discussion est classée dans : objet, printf, temp, choix, acree


Répondre à ce message

Sujets en rapport avec ce message

Creer un objet activex [ par EBArtSoft ] Bonjour ,J'ai une dll/activex en vb avec un module de classe nommé"Class1" comprenant une fonction appelé "Execute".J'ai aussi un programme en vc qui petite question pr une meilleur visibilité [ par anek971 ] Bonjour a tousEnfaite je voudrais savoir en mode console comment on fait pr que par exemple le prog :#include int main(void){ int choix; do { printf pb avec gets() [ par redbob ] J'ai un probleme avec la fonction gets().Voici mon code:struct piece temp;printf("\nReference de la piece : "); get(temp.ref); fflush(st prob pour associe des donnée se trouvant dans 2 fichiers different [ par gemini010 ] bonjour,g creer 5 fonctions permetant : - de lancer le menu du prog d'ajouter des client COMMENT FAIRE UN PETIT MENU EN C [ par geogram22 ] Salut à tous,Commencant à programmer en C g un véritable petit problème pour créer qqch de tous simple pour certains [: p] et que g véritablement bes CASE [ par CHKDSK2K ] Bonjour, j'ai une variable de type char "choix";  je voudrais utiliser cette variable dans un switch mais il ne veut passwitch(choix){    case 'maison 0 + 1 = 6 ??? [ par Also know as ] Bonjour, J'ai à nouveau le même genre de poblème. Voici mon nouveau source : /* Exemple simple d'utilisation de l'instruction do-while */ #include sortie de programme impossible [ par maniolar ] Bonjour à tous, celafait deux jours que je tente deseperemment de trouver un moyen de sortir de mon prog correctement mais je n'y arrive pas!! j'ai l' Problème avec les modules en C [urgent] [ par john_cc ] Bonsoir, Merci, c'est bon, j'ai reglé mon précédent problème.J'ai encore un problème.J'ai 2 modules : un pour la saisie, un pour le combat.Quand je ve Besoin d'aide pour ce programme [ par ibnoul ] Salut j'aimerai avoir de l'aide a propos de ce programme en c++ il me sigale des errreurs et je ne parvient pas a les corriger. On me demande creer un


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,359 sec (3)

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