#02 Les listes chaînées en C - Ajouter un élément à la fin-

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น •

  • @soultanaousmane9162
    @soultanaousmane9162 4 ปีที่แล้ว

    Merci infinénement Monsieur.
    Vous etes meuilleur!!!!

  • @ayoubhazar7911
    @ayoubhazar7911 3 ปีที่แล้ว +3

    lah yr7em lwalidin ,rak oustad dyal besse7 ,makrehnach ykunu balek bzzf ,lah ysser lik f7yatek

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  3 ปีที่แล้ว +1

      Merci pour vos encouragements

  • @elazzaouykarim9749
    @elazzaouykarim9749 4 ปีที่แล้ว

    merci beaucoup Monsieur lah irhm lik l walidin f had ramadan mobark stafdt bzaff merci

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว +1

      شكرا سيدي الفاضل احسن ماقلتي الله يرحم الوالدين

    • @elazzaouykarim9749
      @elazzaouykarim9749 4 ปีที่แล้ว

      @@PWH_HAIRIBI svp prof imta tloh lina incha alah suppression au milieu pour les liste doublement chaînées

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว

      @@elazzaouykarim9749 voici la vidéo ssi karim
      th-cam.com/video/lmxxqml0IJc/w-d-xo.html

  • @aitdiouane6860
    @aitdiouane6860 ปีที่แล้ว +3

    x7al w ana wa7le fhade liste chaine 3yite n9elb f les video walo ta l9it playlist dyalk lah ishel elik akhoya

  • @Nbbessem5241
    @Nbbessem5241 3 ปีที่แล้ว

    جزاك الله كل الخير يا أستاذ

  • @marouanesahbani807
    @marouanesahbani807 4 ปีที่แล้ว +3

    Merci beaucoup Monsieur, pourquoi temp-->next=b dans la boucle et non pas dehors ?

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว +4

      Elle est en dohors de la boucle while
      La boucle while contient une seule instruction temp=temp->next;

    • @k7lnzi
      @k7lnzi 2 ปีที่แล้ว

      نفس الملاحضة

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  2 ปีที่แล้ว +1

      Même réponse

  • @AlessiaCaraFans
    @AlessiaCaraFans 4 ปีที่แล้ว +2

    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_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว +2

      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.

    • @AlessiaCaraFans
      @AlessiaCaraFans 4 ปีที่แล้ว +1

      @@PWH_HAIRIBI merciiii monsieur vraiment sbhanllah une fois tatchre7 tanfhm bzfff dlhwayj ...continuez vous etes le meilleuuuur

  • @JOKER_Faidi
    @JOKER_Faidi 2 ปีที่แล้ว +6

    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_HAIRIBI
      @PWH_HAIRIBI  2 ปีที่แล้ว +3

      Dans la fonction ajouter à la fin le temp->next=b; doit être à l'intérieur des accolades de else

    • @hamzaaityoussef4025
      @hamzaaityoussef4025 ปีที่แล้ว +1

      @@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
      @PWH_HAIRIBI  ปีที่แล้ว

      C'est pas à l'intérieur des accolades de while mais du else càd après la boucle

  • @ilyas425
    @ilyas425 4 ปีที่แล้ว +1

    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_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว +1

      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

    • @ilyas425
      @ilyas425 4 ปีที่แล้ว

      @@PWH_HAIRIBI aah oui , j'ai compris monsieur , jazak laho khayran ..

  • @khawlazainane3485
    @khawlazainane3485 4 ปีที่แล้ว +2

    Merci bcpp

  • @ibtissambasoma443
    @ibtissambasoma443 4 ปีที่แล้ว +2

    Svp khasna des exercices corrigés pour chaque partie!! 😢et merci d'avance monsieur

  • @Nbbessem5241
    @Nbbessem5241 3 ปีที่แล้ว +1

    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_HAIRIBI
      @PWH_HAIRIBI  3 ปีที่แล้ว +1

      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

    • @Nbbessem5241
      @Nbbessem5241 3 ปีที่แล้ว

      @@PWH_HAIRIBI ah, d'accord merci beaucoup monsieur

  • @oussamakharbouch6936
    @oussamakharbouch6936 3 ปีที่แล้ว

    merci monsieur

  • @drissbenomar3500
    @drissbenomar3500 3 ปีที่แล้ว +1

    choukrane bzf prof 3andi wahd lmolahada f else f fonction d ajouter machi khsna n3awdo rj3o l deubut l9ima li kayna f temp ???

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  3 ปีที่แล้ว +1

      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

    • @drissbenomar3500
      @drissbenomar3500 3 ปีที่แล้ว +1

      @@PWH_HAIRIBI chokrane bzf prof 3la tawdih 😍❤️

  • @marouansw3200
    @marouansw3200 2 ปีที่แล้ว +2

    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_HAIRIBI
      @PWH_HAIRIBI  2 ปีที่แล้ว +1

      La liste initialement est vide le début sera modifié lors de la l'ajout du premier élément

  • @looklisten1287
    @looklisten1287 6 หลายเดือนก่อน

    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

    • @abdounidouae7653
      @abdounidouae7653 หลายเดือนก่อน

      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

  • @badreddine4296
    @badreddine4296 3 ปีที่แล้ว +1

    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_HAIRIBI
      @PWH_HAIRIBI  3 ปีที่แล้ว +1

      Lerreur est ici tu as écrit :
      if(debut=NULL) debut =b;
      Au lieu
      if(debut==NULL) debut =b;
      Il faut mettre ==

    • @badreddine4296
      @badreddine4296 3 ปีที่แล้ว

      @@PWH_HAIRIBI merciiiii 🤦‍♂️

    • @saidaahmedchaouch81
      @saidaahmedchaouch81 3 ปีที่แล้ว

      @@PWH_HAIRIBI الشكر الجزيل أستاذ على كل هذه المجهودات المبذولة، والله الإستفادة عمت الجميع.
      Est ce que c possible des vidéos sur les arbres

  • @maryambazid8961
    @maryambazid8961 4 ปีที่แล้ว

    Salut svp pourquoi il y en deux cas ici si la liste est vide ou non ??

  • @mohachegdali9680
    @mohachegdali9680 2 ปีที่แล้ว

    J'ai un question svp, pourquoi le typecasting ??,ona déjà b est de type boxe*

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  2 ปีที่แล้ว

      Tu peux ne pas le mettre mais ça dépend des compilateur utilisé car malloc retourne un pointeurs void*

    • @mohachegdali9680
      @mohachegdali9680 2 ปีที่แล้ว

      @@PWH_HAIRIBI merci beaucoup 👌

  • @maakoulfatimaezzahraa629
    @maakoulfatimaezzahraa629 4 ปีที่แล้ว +1

    merci

  • @oussamasamia9412
    @oussamasamia9412 5 ปีที่แล้ว

    Mercii ❤️

  • @عدنانمهداوي-ن5ث
    @عدنانمهداوي-ن5ث 3 ปีที่แล้ว +1

    ف ajouter fin ايلا درنا b هو لي pointer على الاخر و ماشي العكس .واش صحيح

  • @mehdinouira3540
    @mehdinouira3540 4 ปีที่แล้ว +1

    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,

    • @mehdinouira3540
      @mehdinouira3540 4 ปีที่แล้ว

      @@PWH_HAIRIBI mehdinouira97@gmail.com

    • @mehdinouira3540
      @mehdinouira3540 4 ปีที่แล้ว +1

      @@PWH_HAIRIBI merci

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  4 ปีที่แล้ว

      @@mehdinouira3540 je t'ai envoyé les programmes

  • @bayn_assotour
    @bayn_assotour 5 ปีที่แล้ว

    Merci bcp

  • @ISMAILSOULI-qy7uv
    @ISMAILSOULI-qy7uv 9 หลายเดือนก่อน

    monsieur pour quoi la fonction ajouter a la fin return au debut et ne return pas temp.

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  9 หลายเดือนก่อน +1

      Car le pointeur début fait référence à la liste

  • @kakounabdelaziz2230
    @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
    ???!!

    • @yassirht7438
      @yassirht7438 4 หลายเดือนก่อน

      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-maroc
    @AchWa93-maroc 3 ปีที่แล้ว

    merci bcpppp.

  • @elazzaouykarim9749
    @elazzaouykarim9749 3 ปีที่แล้ว

    Salamo 3likoum
    Monsieur wach radi t9dr dirhom incha alah b c++

  • @youssrabadda2259
    @youssrabadda2259 3 ปีที่แล้ว

    merciiii bcpp

  • @Yassinel-p9x
    @Yassinel-p9x ปีที่แล้ว

    walakin kifch ndiro le passage par adresse?

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  ปีที่แล้ว

      Avec le double *
      Box**

  • @kawtarkoko4258
    @kawtarkoko4258 10 หลายเดือนก่อน

    A min15 :12 kan momkin ndiro ri temp=b dirct ??

    • @PWH_HAIRIBI
      @PWH_HAIRIBI  10 หลายเดือนก่อน +1

      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

  • @CodeWithImem
    @CodeWithImem 3 ปีที่แล้ว

  • @salvaggiotoni9818
    @salvaggiotoni9818 4 ปีที่แล้ว

    j'taime trop ouaich

  • @yousra9159
    @yousra9159 3 ปีที่แล้ว +2

    Merci bcp