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

C

 > 

Divers

 > 

Débutant(e)

 > 

Crée une liste chainé dans une fonction


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

Crée une liste chainé dans une fonction

mercredi 2 décembre 2009 à 17:55:17 | Crée une liste chainé dans une fonction

carton99

Bonjour,
j'ai un probleme sur les listes , je doit absolument régler ce probleme car je doit faire une fonction récursive.

voila le code

Population mafonction(Population M)
{
Population trie_sup;
trie_sup=(Population*) malloc(sizeof(population));
Population temp;
temp=trie_sup;
int i=5;//peu importe c'est pour faire apparaitre le probleme
while(i>0)
{
i--;
trie_sup->valeur=1;
trie_sup=(population*) malloc(sizeof(population));
trie_sup=trie_sup->suivant;
}
trie_sup->valeur=1;
trie_sup->suivant=NULL;

trie_sup=temp;
return trie_sup;
}



Voila le code est juste la pour montrer mon probleme , je précise que je doit compiler sur ubuntu et il n'y a pas d'erreur .

le probleme c'est que en mon return devrai me renvoyer une liste avec 6 données .
Sauf que en réalité il ne m'en cré que un seul le premier , c'est comme si trie_sup=trie_sup->suivant n'avait aucun effet.

J'aimerai qu'on m'explique pourquoi sa marche pas ,et comment faire , surtout que si je ferai sa dans mon "main" le programme se comporterais corectement .
mercredi 2 décembre 2009 à 18:05:38 | Re : Crée une liste chainé dans une fonction

juju12

Code C/C++ :
// Remplace
trie_sup=(population*) malloc(sizeof(population)); 

// par
trie_sup->suivant=(population*) malloc(sizeof(population)); 
mercredi 2 décembre 2009 à 18:09:02 | Re : Crée une liste chainé dans une fonction

carton99

dsl en faite j'ai modifier mon code pour qu'il sois plus simple à lire en réalité j'aavai inversé la ligne que tu me demande de modifier.


Population mafonction(Population M)
{
Population trie_sup;
trie_sup=(Population*) malloc(sizeof(population));
Population temp;
temp=trie_sup;
int i=5;//peu importe c'est pour faire apparaitre le probleme
while(i>0)
{
i--;
trie_sup->valeur=1;
trie_sup=trie_sup->suivant;
trie_sup=(population*) malloc(sizeof(population));
}
trie_sup->valeur=1;
trie_sup->suivant=NULL;

trie_sup=temp;
return trie_sup;
}
mercredi 2 décembre 2009 à 18:33:02 | Re : Crée une liste chainé dans une fonction

carton99

oki merci pour la réponse .

Bon d'apres ce que j'ai compris pour crée un nouvel element on est obligé de respecter ce type de code:

trie_sup->suivant=(population*) malloc(sizeof(population));

et ce type de code est interdit , en tous cas ne marche pas :

trie_sup=trie_sup->suivant;
trie_sup=(population*) malloc(sizeof(population));
mercredi 2 décembre 2009 à 20:39:52 | Re : Crée une liste chainé dans une fonction

CptPingu

Administrateur CodeS-SourceS
Si tu fais "trie_sup=trie_sup->suivant;" sans faire de copie de trie_sup, "tu perds la tête", et forcément tu ne retourneras pas ce qu'il faut.

Je t'invite à lire ceci, qui est un cours sur les pointeurs + listes chaînées, avec explications, dessins et exemples en C.
http://0217021.free.fr/Cours/pointeurs.pdf
mercredi 2 décembre 2009 à 22:13:10 | Re : Crée une liste chainé dans une fonction

carton99

Non je stoke dès le début la valeur de tête.
Et ce que je voulai dire c'est que je trouve pas cette syntaxe tres pratique.
Enfait apres qq essai le probleme est récurent .Voici un exmeple simple:

while(maliste1!=NULL)
{
maliste1=maliste1->adresse_suivante;
}
maliste1=maliste2;
maliste1=tete_de_liste1;

NE FONCTIONNE PAS mais me parait le plus logique à programmé principalement pour gerer les cas spéciaux ex liste vide.

Par contre

while(maliste1->adresse_suivante->!=NULL)
{
maliste1=maliste1->adresse_suivante;
}
maliste1->adresse_suivante=maliste2;
maliste1=tete_de_liste1;

Fonctionne corectement mais plus dificile pour gérer les cas spéciaux
De toute facon je n'ai pas le choix




Cette discussion est classée dans : trie, probleme, liste, sup, population


Répondre à ce message

Sujets en rapport avec ce message

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 probleme de scannage d une listbox [ par akjoe ] S il vous plait aider moi ,Veuillez me dire comment je fais pour lire par une boucle For chaque ligne de la liste box et ainsi mettre la valeur du tex probleme de pointeur et de liste chainée [ par krater ] sur un projet de video-club nous avons utilise une liste double chainées cepedant, nous avons quelque récurent à la compillation si une reponse pouvai probleme de trie [ par censure ] voila je vous espose mon probleme, je dois realiser un programme qui doit aller lire les noms, les prenoms et les dates de naissance de personne dans probleme d'execution [ par cyrina84 ] Bonjour, jai un probleme au niveau de mon programme. quand je fais le run il maffiche aucune e PROBLEME DE REGLALE DANS MA FONCTION [ par cyrina84 ] Bonjour à tous le developpeursj'ai un probleme dans ma fonction :elle fonctionne bien (enfin pas de d'erreurs ou autres ) mais y Probleme de trie par ordre alphabetique [ par jeniethebest ] Bonjour,              J'ai un projet a rendre très bientôt et je dois faire un tri par ordre alphabétique d'un fichier. Le tri doit se faire sur deux besoin d'aide pour un probleme avec les liste chainees [ par boulhech27 ] bonjou à tous. voici mon probleme. je n'arrive pas à trouver comment chercher le nombre d'occurence dans ma liste chainéevu que je copie des string d' probleme en exécution [ par danni31 ] bonsoir;mon programme se compile sans aucune erreurs et il s'exécute, et se termine normalement mais la fenêtre apparaît puis disparaît immédiatement Probleme d'ajout de chaine de caractere dnas une liste box [ par Zock ] Bonjour a tous ceux qui liront ce post,Alors voila j'ai un petit soucis avec une de mes applications, il me semble que c'est du .NetEx :checkedListBox


Nos sponsors


Sondage...

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 : 0,655 sec (4)

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