begin process at 2012 05 29 03:56:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

[C] insertion en fin de liste chainée


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

[C] insertion en fin de liste chainée

mardi 16 mars 2004 à 19:02:11 | [C] insertion en fin de liste chainée

Cow_B

Bonjour, j'ai à nouveau un ch'tit souci...

je cherche à insérer un nouveau maillon à la fin d'une liste chainée. Avec ce que je fais, je me fait envoyer péter par mon compilateur... mais je vois pas où est l'erreur... snif...

Merci à ceux qui pourront m'aider !!! :)




// Structure
typedef struct liste *ptr_liste;

typedef struct liste
{
char mot[5];
char type;
ptr_liste *suivant;
}liste;


// Permet de faire une insertion en fin de liste chainée.
ptr_liste insertion(char mot_regle[30][5], ptr_liste p, long nb_mot)
{
ptr_liste courant, nouv;
int i=0, j=0;


for (i=0; i<nb_mot; i++)
{

nouv = (ptr_liste) malloc (sizeof(liste));

for(j=0; j<5; j++)
{
nouv->mot[j] = mot_regle[i][j];
}

nouv->suivant = NULL;

if (p == NULL)
{
p = nouv;
}
else
{
courant = p;
do
{
courant = courant->suivant;
}while(courant != NULL);
courant = nouv;
}
}

return p;
}




Merci beaucoup !!! ;)

Cow-B
-----------------------------------------------
C'est au pied du mur.... qu'on voit le mieux le mur
-----------------------------------------------
mardi 16 mars 2004 à 20:22:10 | Re : [C] insertion en fin de liste chainée

goth


euh....je suis peut etre bete mais elle est censée faire koi ta fonction...

de plus je comprend pas pourquoi tu met ton malloc dans la boucle pour faire un nouveau maillon

puis dans : nouv->mot[j] = mot_regle[i][j];

nouv-> mot comme tu l'a defini est un chaine et mot_regle un tableau de chaine...et tu essaie d'affecter une chaine à un caractère(nouv->mot[j])...puis si c vraiment une copie de chaine que tu veux, n'oublie pas strcpy...

explique ce que t'a fonction est censé faire pcq la moi, je bloque...
mardi 16 mars 2004 à 20:38:47 | Re : [C] insertion en fin de liste chainée

Cow_B

Pour être plus clair, je remets la source avec les commentaires.

Sinon, effectivement, j'aurais pu faire un strcpy... mais je me souvenais plus du nom de la fonction... ce ke g fait est la meme chose en plus long... c tout.

Sinon, le but véritable de ma fonction est d'insérer un nouveau maillon à la fin d'une liste chainée, et ce plusieurs fois (pour différents maillons). Je ne cherche pas de classement spécial, je veux juste les rentrer les uns à la suite des autres.

Voilà, j'espère que j'ai été plus clair et que ca va te permettre de m'aider !!!! :)




// Permet de faire une insertion en fin de liste chainée.
ptr_liste insertion(char mot_regle[30][5], ptr_liste p, long nb_mot)
{
ptr_liste courant, nouv;
int i=0, j=0;

// On fait une boucle pour insérer tous les mots d'une règle dans une liste chainée.
for (i=0; i<nb_mot; i++)
{
// On prépare le nouveau maillon à insérer
nouv = (ptr_liste) malloc (sizeof(liste));

for(j=0; j<5; j++)
{
nouv->mot[j] = mot_regle[i][j];
}
nouv->suivant = NULL;

// Si la chaine est vide, la tête de la liste sera le maillon nouv...
if (p == NULL)
{
p = nouv;
}
// ... sinon, on va à la fin de la liste chainée et on insert en dernier.
else
{
courant = p;
do
{
// Il semblerait que se soit là que ca coince :
courant = courant->suivant;
}while(courant != NULL);
courant = nouv;
}
}

return p;
}




Cow-B
-----------------------------------------------
C'est au pied du mur.... qu'on voit le mieux le mur
-----------------------------------------------
mardi 16 mars 2004 à 22:00:51 | Re : [C] insertion en fin de liste chainée

vecchio56

Administrateur CodeS-SourceS
Tu n'as pas honte de faire ce genre de truc en C alors qu'un langage objet comme C++ est bien mieux adapté?
mardi 16 mars 2004 à 22:12:49 | Re : [C] insertion en fin de liste chainée

Cow_B

Bah honte, en fait pas trop...

vu que ce que je fais répond à un sujet donné... et qu'une des conditions du sujet est que le projet soit fait en C.

De plus, pour l'instant je ne connais pas encore le C++... mais ca va pas tarder à arriver ;)

Cow-B
-----------------------------------------------
C'est au pied du mur.... qu'on voit le mieux le mur
-----------------------------------------------
mardi 16 mars 2004 à 22:15:19 | Re : [C] insertion en fin de liste chainée

Cow_B

Bon voilà la révision que j'ai apporté à la chose, mais je sais pas encore si ca va être accepté par le compilateur



// Permet de faire une insertion en fin de liste chainée pour
// insérer tous les mots d'une règle dans une liste chainée.
void insertion(char mot_regle[30][5], ptr_liste *p, long nb_mot)
{
ptr_liste *courant, *nouv;
int i=0;

// On fait une boucle pour insérer tous les mots d'une règle dans une liste chainée.
for (i=0; i<nb_mot; i++)
{
courant = (ptr_liste*) malloc (sizeof(liste));
// On prépare le nouveau maillon à insérer
nouv = (ptr_liste*) malloc (sizeof(liste));


strcpy((*nouv)->mot, mot_regle[i]);
(*nouv)->suivant = NULL;

// Si la chaine est vide, la tête de la liste sera le maillon nouv...
if (p == NULL)
{
p = nouv;
}
// ... sinon, on va à la fin de la liste chainée et on insert en dernier.
else
{
courant = p;
do
{
// Il semblerait que se soit là que ca coince :
courant = (*courant)->suivant;
}while(courant != NULL);
courant = nouv;
}
}
}



Cow-B
-----------------------------------------------
C'est au pied du mur.... qu'on voit le mieux le mur
-----------------------------------------------


Cette discussion est classée dans : fin, liste, insertion, ptr, courant


Répondre à ce message

Sujets en rapport avec ce message

[C] liste chainée [ par Cow_B ] Bonjour, g un tout petit souci...lors de la compilation d'un programme contenant cette fonction, ca plante... ca fait plus de 12h maintenant que j'ess probleme de liste chaine [ par cutibipoulet ] voila, ge débute en cpp et iles problèmes commences quand je fait une simple liste doublement chainé. JeDans cette liste, il existe undebut list_begin tri par insertion dans une liste chaînée [ par titi4659 ] Bonjour,j'ai un problème avec une liste chaînée.j'ai une liste d'element que j'arrive a récupéré mais je souhaiterai que lorsque je récupère un elemen Tri par insertion sur liste simplement chainée [ par Jordy89 ] Bonjour,Dans le cadre de la manipulation d'une liste chaînée, je suis amené à effectuer un tri; Je me suis renseigné à gauche et à droite, et il appar erreur de segmentation - ajout en fin de liste [ par WildChild54 ] Salut à tous!J'ai une procédure recursive sensée ajouter un élément en fin de liste qui pose un problème: je ne vois aucune erreur et pourtant lorsque chargement d'une liste chainée à partir d'un fichier binaire qui contient des structures [ par achmer ] bonjours à tous... j'ai un petit problème au niveau de la récupération des structures (patient) enregistrées dans un fichier bonaire ,pour les charge Tri par insertion sur listes simplement chainées [ par ichigoZ710 ] Bonjour, voilà, je vous explique rapidement mon problème, je dois élaborer une procédure de tri par insertion sur une liste qui vient en paramètre de ajout d'un element à la fin d'une liste chainée [ par 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 #include s Besoin D'aide [ par ChInOvSki ] J'ai créé ce programme, et j'en ai pas trouvé où est le probleme :s Voila Mon Prgrm: [size=300]Noeud.h[/size] #include using namespace std; templat [Tous compilos]Optimisation de listes chaînées ( enveloppe convexe ) [ par GoldenEye ] Bonjour tlmJe cherche à optimiser l'algorithme Quick Hull pour déterminer l'enveloppe convexe de N points à coordonnées entières dans un plan.Au lance


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 : 1,404 sec (3)

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