une Base Solide en Programmation

C++/Java/Delphi/Assembleur
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 les listes chainés en C

Aller en bas 
AuteurMessage
Admin
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 232
Age : 31
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

MessageSujet: les listes chainés en C   Dim 30 Déc - 0:30

voila un cours tres complets sur les listes chainées et surtout la methode de tri en C
http://chgi.developpez.com/sortlist/

_________________
www.abdoullah.co.cc(en construction)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://hbpcclub.forumactif.fr
nadia
soldat
soldat


Féminin
Nombre de messages : 14
Age : 32
Localisation : chlef
Loisirs : informatique
Date d'inscription : 28/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 22:25

peace be upen you
dans cet exemple :
void Push(pile *p, int Val)
{
pile *element = malloc(sizeof(pile));
if(!element) exit(1);
element->valeur = Val;
element->prec = *p;
*p = element;
}
j ai pas compris l' interet de (if(!element) exit(1); )
que signifie ça
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 22:39

Peace be open you Nadia...
Pour ta question Nadia: certain temp quand on fait l'allocation dynamique par la fonction malloc, le S.E n'accepte pas ça (cad il ne nous donne pas une case mémoire pour l'utiliser), et ça se fait à cause de: peut etre que la mémoire est pleine utlisée, et il y a plus d'un espace libre...
Alors dans cette situation la fonction malloc ne renvoit pas une adresse, mais plutot une NULL , cad la fonction malloc n'a pas réussi en l'allocation d'une espace mémoire (faute de mémoire pleine etc...), et c'est ça prkoi il font le test
Code:

if (!element)
et c'est équivalent à
Code:

if (element==NULL)
cad si la valeur booleen entre les parenthese est fausse, cad si le pointeur contient NULL alors
Code:

exit(-1);
cette instruction fait sortir completement le programme avec une erreur...
c'est pour ça il faut tjrs teste la fonction malloc à chaque fois on l'utilise, pour valider s'il a réussi dans l'allocation ou non...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
nadia
soldat
soldat


Féminin
Nombre de messages : 14
Age : 32
Localisation : chlef
Loisirs : informatique
Date d'inscription : 28/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 22:59

Rolling Eyes thanks a lot
mais j ai trouvée aussi une autre expression
int Length(elt*p)
{
int n=0;
while(p) /*le probleme est ici*/
{
n++;
p = p->suiv;
}
return n;
}
dans ce cas normalement en fait
while(p !=NULL)
{
n++;
p = p->prec;
}
return n;
est ce que c'est la meme chose ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 23:21

Oui Nadia c'est la meme chose...
On a dit que l'expression
Code:

while ( )
prend entre ses parenthèses une expression booléen, cad le résultat qui doit sortir des parenthèses doit etre booléen(VRAI ou FAUX)... et on sit que que la valeur qui signifie FAUX est uniquement le 0, à part ça, n'importe quelle autre valeur signifie VRAI...  alors tant que la valeur entre parenthèse n'est pas 0, le résultat signifie dans ce cas VRAI et la boucle tourne normal, une fois la valeur entre parenthèse devient 0, le résulltat  est FAUX, et la boucle sort....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
nadia
soldat
soldat


Féminin
Nombre de messages : 14
Age : 32
Localisation : chlef
Loisirs : informatique
Date d'inscription : 28/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 23:35

vouz avez dit que une fois la valeur entre parenthèse devient 0, le résulltat est FAUX, et la boucle sort....mais p est un pointeur il prend soit la valeur NULL soit une autre adresse,puisque il se peut que p pointe vers la premiére case de la memoire (si p==0)? et il se peut que p n egale jamais 0 ?
please
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Re: les listes chainés en C   Jeu 10 Jan - 23:53

Non Nadia...
le cas ce que tu parle, cad le cas ou l'expression booléen donne FAUX ou VRAI est dépend à la nature du type de variable, et dans le type de variable int oui c'est de 0 qui donne la valeur FAUX...( il faut ramarquer que je parle de 0 booléen et pas le 0 numérique)
Mais dans le cas de pointeurs ( les pointeurs sont des variables particulieres)
n'est pas la valeur 0 qui donne FAUX, mais la valeur NULL qui donne le FAUX,...
Alors les pointeurs sont considérées comme une adresse(numéro quelconque et ça contient le 0 numérique) et ça se donne VRAI , ou NULL et ça se donne FAUX
Donc le 0 est une adresse mémoire valide(VRAI), et ce n'est pas FAUX Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
nadia
soldat
soldat


Féminin
Nombre de messages : 14
Age : 32
Localisation : chlef
Loisirs : informatique
Date d'inscription : 28/03/2007

MessageSujet: Re: les listes chainés en C   Ven 11 Jan - 0:13

Embarassed AHHHHH sayer j ai compris merci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Benayada Houari
Administrateur
Administrateur
avatar

Masculin
Nombre de messages : 89
Age : 32
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

MessageSujet: Re: les listes chainés en C   Ven 11 Jan - 0:14

Aucun problèm Nadia....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: les listes chainés en C   

Revenir en haut Aller en bas
 
les listes chainés en C
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» En panne d'inspiration ? | Listes De Pseudos Disponibles
» Couleur de police pour listes
» Changer la couleur de police des champs Texte/listes dans la fiche de perso
» changement police listes déroulantes
» avec Chain remplissage List par 1 autre programe

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
une Base Solide en Programmation :: HBPCCLUB ACADEMY :: C-
Sauter vers: