si le programme ne veut pas marcher taper : #include #include typedef struct box { int data; struct box * next; }box; box * ajouterAD(box *debut, int elment) //fonction ajouter au début { box * b; b = (box *)malloc(sizeof(box)); b->data = elment; b->next = debut; debut = b; return debut; } //fontion ajouter à la fin box * ajouterAF(box * debut, int n) { box * b, * temp; b = (box *)malloc(sizeof(box)); b->data = n; b->next = NULL; if(debut == NULL) { debut = b; } else { temp = debut; while (temp->next != NULL) { temp = temp->next; } } temp->next = b; return debut; } //fontion afficher liste void afficheL(box *debut) { box * temp; temp = debut; if (debut == NULL) { printf("la liste est vide"); } else { while(temp != NULL) { printf("%d-->", temp->data); temp = temp->next; } } } int main() { box * l1 = NULL; int n, i, nbr; printf("donner le nombre des element du la liste "); scanf("%d", &nbr); for(i = 0 ; i< nbr; i++) { printf("donner le %d element du la liste ", i); scanf("%d", &n); l1 = ajouterAF(l1, n); } afficheL(l1); return 0; }
@PWH_HAIRIBI2 жыл бұрын
Dans la fonction ajouter à la fin le temp->next=b; doit être à l'intérieur des accolades de else
@hamzaaityoussef4025 Жыл бұрын
@@PWH_HAIRIBI Monsieur pourquoi il faut être à l'intérieur des accolades si il est à l intérieur une fois on entre à la boucle temp->next il point sur b et on perd les prochaines valeurs de la liste Et merci d'avance
@PWH_HAIRIBI Жыл бұрын
C'est pas à l'intérieur des accolades de while mais du else càd après la boucle
@aitdiouane6860 Жыл бұрын
x7al w ana wa7le fhade liste chaine 3yite n9elb f les video walo ta l9it playlist dyalk lah ishel elik akhoya
@Nbbessem52413 жыл бұрын
جزاك الله كل الخير يا أستاذ
@marouanesahbani8074 жыл бұрын
Merci beaucoup Monsieur, pourquoi temp-->next=b dans la boucle et non pas dehors ?
@PWH_HAIRIBI4 жыл бұрын
Elle est en dohors de la boucle while La boucle while contient une seule instruction temp=temp->next;
@k7lnzi2 жыл бұрын
نفس الملاحضة
@PWH_HAIRIBI2 жыл бұрын
Même réponse
@AlessiaCaraFans4 жыл бұрын
mercii monsieur pour vos efforts wllah ..et svp makrhtsh tjawbni 3la wahed la question : prq on a pas reserver la memoire pour le pointeur temp et seulement pour b
@PWH_HAIRIBI4 жыл бұрын
merci pour vos encouragements, alors le pointeur temp est utiliser seulement pour parcourir la liste pour se déplacer d'un élément à un autre par contre b et utiliser pour créer un nouvel élément dynamiquement.
@AlessiaCaraFans4 жыл бұрын
@@PWH_HAIRIBI merciiii monsieur vraiment sbhanllah une fois tatchre7 tanfhm bzfff dlhwayj ...continuez vous etes le meilleuuuur
@marouansw32002 жыл бұрын
Monsieur déjà le debut reste le meme la fonction ne traite pas le debut alors ça va marcher meme si on a pas indiquer un type de retour (void)
@PWH_HAIRIBI2 жыл бұрын
La liste initialement est vide le début sera modifié lors de la l'ajout du premier élément
@badreddine42963 жыл бұрын
bonjour monsieur svp pourquoi mon programme ne veut pas marcher #include typedef struct box { int data ; struct box * next; }box; box *ajouterAlafin(box*debut,int elm ) { box*b,*temp; b=(box*)malloc(sizeof(box)); b->data=elm; b->next=NULL; if(debut=NULL) debut=b; else { temp=debut; while(temp->next!=NULL) temp=temp->next; temp->next=b; } return debut; } void afficherListe(box*debut) { box*temp; temp=debut; if(debut==NULL) printf("la liste est vide"); else { while(temp!=NULL) { printf("%d-->",temp->data); temp=temp->next; } } } int main() { box*l1=NULL; int n,i,nbr; printf("donner le nbre des element " ); scanf("%d",&nbr); for(i=0;i
@PWH_HAIRIBI3 жыл бұрын
Lerreur est ici tu as écrit : if(debut=NULL) debut =b; Au lieu if(debut==NULL) debut =b; Il faut mettre ==
@badreddine42963 жыл бұрын
@@PWH_HAIRIBI merciiiii 🤦♂️
@saidaahmedchaouch813 жыл бұрын
@@PWH_HAIRIBI الشكر الجزيل أستاذ على كل هذه المجهودات المبذولة، والله الإستفادة عمت الجميع. Est ce que c possible des vidéos sur les arbres
@khawlazainane34854 жыл бұрын
Merci bcpp
@ibtissambasoma4434 жыл бұрын
Svp khasna des exercices corrigés pour chaque partie!! 😢et merci d'avance monsieur
@drissbenomar35003 жыл бұрын
choukrane bzf prof 3andi wahd lmolahada f else f fonction d ajouter machi khsna n3awdo rj3o l deubut l9ima li kayna f temp ???
@PWH_HAIRIBI3 жыл бұрын
Dans le else le debut ne change pas est temp egale au debut donc même si on met debut=temp c'est comme si on n'a rien fait
@drissbenomar35003 жыл бұрын
@@PWH_HAIRIBI chokrane bzf prof 3la tawdih 😍❤️
@oussamakharbouch69363 жыл бұрын
merci monsieur
@looklisten12876 ай бұрын
Bonjour Professeur, Lors de l'exécution du code que vous avez fourni pour la fonction d'ajout au début de la liste chaînée, j'ai remarqué que le résultat affiché est inverse de celui attendu. Par exemple, si l'on entre 5 éléments dans l'ordre 1, 2, 3, 4, 5, le programme affiche 5, 4, 3, 2, 1. Cependant, le résultat attendu devrait être 5, 1, 2, 3, 4, conformément à ce qui a été expliqué. Pourriez-vous clarifier ce point ou expliquer comment obtenir le résultat attendu ? Merci beaucoup pour votre aide
@abdounidouae76532 ай бұрын
Non l'affichage est juste , au debut 1 etait au debut apres lorsqu'on ajoute 2 alors maintenant 2 qui est au debut apres 3 au debut ... a chaque fois , lorsqu'on fait appel a la fct elle met le nbr au debut donc au final on obtient 5 4 3 2 1
@Nbbessem52413 жыл бұрын
Svp monsieur j'ai une question Est-ce que la tête c'est le début de la liste (qui contient sauf le pointeur de 1er nœud) ou bien c'est le 1et nœud de la liste (qui contient un pointeur et le data de nœud)???
@PWH_HAIRIBI3 жыл бұрын
La tête de la liste c'est le premier nœud Si la liste est vide on peut pas parler d'une liste car la liste n'existe pas le pointeur debut c'est juste pour repérer la liste
@Nbbessem52413 жыл бұрын
@@PWH_HAIRIBI ah, d'accord merci beaucoup monsieur
@ilyas4254 жыл бұрын
Merci beaucoup monsieur pour vos efforts , juste une petit question , c'est juste ,d'ecrire temp au lieu d'ecrire temp->next dans la boucle while .
@PWH_HAIRIBI4 жыл бұрын
J'ai utilisé temp->next pour s'arrêter au dernier élément (temp doit pointer le dernier élément) si j'utilise just temp je vais dépasser le dernier élément temp==NULL par contre temp->next==NULL veut dire que temp pointe le dernier élément
Salut svp pourquoi il y en deux cas ici si la liste est vide ou non ??
@عدنانمهداوي-ن5ث3 жыл бұрын
ف ajouter fin ايلا درنا b هو لي pointer على الاخر و ماشي العكس .واش صحيح
@oussamasamia94125 жыл бұрын
Mercii ❤️
@elmehdihairibi47975 жыл бұрын
Vous méritez plus
@mehdinouira35404 жыл бұрын
s'il vous plait pouvez vous m'envoyer le programme ou l'écrire dans le commentaire pour que je puisse réviser plus ce lundi j'ai un examen,
@mehdinouira35404 жыл бұрын
@@PWH_HAIRIBI mehdinouira97@gmail.com
@mehdinouira35404 жыл бұрын
@@PWH_HAIRIBI merci
@PWH_HAIRIBI4 жыл бұрын
@@mehdinouira3540 je t'ai envoyé les programmes
@mohachegdali96802 жыл бұрын
J'ai un question svp, pourquoi le typecasting ??,ona déjà b est de type boxe*
@PWH_HAIRIBI2 жыл бұрын
Tu peux ne pas le mettre mais ça dépend des compilateur utilisé car malloc retourne un pointeurs void*
@mohachegdali96802 жыл бұрын
@@PWH_HAIRIBI merci beaucoup 👌
@maakoulfatimaezzahraa6294 жыл бұрын
merci
@ISMAILSOULI-qy7uv10 ай бұрын
monsieur pour quoi la fonction ajouter a la fin return au debut et ne return pas temp.
@PWH_HAIRIBI10 ай бұрын
Car le pointeur début fait référence à la liste
@youssrabadda22593 жыл бұрын
merciiii bcpp
@bayn_assotour5 жыл бұрын
Merci bcp
@elmehdihairibi47975 жыл бұрын
Avec un grand plaisir
@kakounabdelaziz2230 Жыл бұрын
Bnj ms Dans la fonction main ( ) Dans les arguments de la fonction ajouterAlaFin Pourquoi tu n'as fais pas symbole de l'adresse avant l1 ajouterAlaFin( &l1, n ) normallmenet c'est un passage par adresse par ce que nous allons changer l1 a l'intérieur de la fonction ???!!
@yassirht74385 ай бұрын
car en return l'element beg (l1) apres l'affecter au l1 pour avoir le mise a jour du debut de chaine et deja monsieur haribi a changer void vers Node* pour eviter ce problem. et comme recap on est pas besoin de passage par adress si la fonction return une valeur (corriger moi si mon comprehetion est erroné).
@AchWa93-maroc3 жыл бұрын
merci bcpppp.
@elazzaouykarim97494 жыл бұрын
Salamo 3likoum Monsieur wach radi t9dr dirhom incha alah b c++
@Yassinel-p9x Жыл бұрын
walakin kifch ndiro le passage par adresse?
@PWH_HAIRIBI Жыл бұрын
Avec le double * Box**
@kawtarkoko425810 ай бұрын
A min15 :12 kan momkin ndiro ri temp=b dirct ??
@PWH_HAIRIBI10 ай бұрын
Non il faut faire temp->next=b; Car temp c'est l'adresse de l'élément encore c'est sont next qui doit pointer le b si non on va perdre l'élément encore