09 - | C++ Data Structures | - | Linked Lists - Part 3 | - | تراكيب البيانات |

Поделиться
HTML-код
  • Опубликовано: 6 ноя 2024

Комментарии • 69

  • @DesoukiEgypt
    @DesoukiEgypt  2 года назад +72

    كود البرنامج كامل
    #include
    using namespace std;
    class Node
    {
    public:
    int data;
    Node* next;
    Node()
    {
    data = 0;
    next = NULL;
    }
    };
    class Linkedlist
    {
    public:
    Node* head;
    Linkedlist()
    {
    head = NULL;
    }
    /*bool isempty()
    {
    if (head == NULL)
    return true;
    else
    return false;
    }*/
    bool isempty()
    {
    return (head == NULL);
    }
    void InsertFirst(int newvalue)
    {
    Node* newnode= new Node();
    newnode->data = newvalue;
    if (isempty())
    {
    newnode->next = NULL;
    head = newnode;
    }
    else
    {
    newnode->next = head;
    head = newnode;
    }
    }
    void display()
    {
    Node* temp = head;
    while (temp != NULL)
    {
    cout data next;
    }
    cout next;
    }
    return counter;
    }
    bool isfound(int key)
    {
    bool found = false;
    Node* temp = head;
    while (temp != NULL)
    {
    if (temp->data == key)
    found = true;
    temp = temp->next;
    }
    return found;
    }
    void insertbefore(int item, int newvalue)
    {
    if (isempty())
    InsertFirst(newvalue);
    if (isfound(item))
    {
    Node* newnode = new Node();
    newnode->data = newvalue;
    Node* temp = head;
    while (temp != NULL && temp->next->data != item)
    {
    temp = temp->next;
    }
    newnode->next = temp->next;
    temp->next = newnode;
    }
    else
    {
    cout next != NULL)
    {
    temp = temp->next;
    }
    Node* newnode = new Node();
    newnode->data = newvalue;
    temp->next = newnode;
    newnode->next = NULL;
    }
    void Delete(int item)
    {

    if (isempty())
    cout data == item)
    {

    head = head->next;
    delete delptr;
    }
    else
    {
    Node* prev = NULL;
    delptr = head;
    while (delptr->data != item)
    {
    prev = delptr;
    delptr = delptr->next;
    }
    prev->next = delptr->next;
    delete delptr;
    }



    }

    };
    int main()
    {
    Linkedlist lst;
    if (lst.isempty())
    cout

    • @ahmedkaram2112
      @ahmedkaram2112 2 года назад +3

      جزاك الله خير يا دكتور

    • @lolyalmuqadami1325
      @lolyalmuqadami1325 2 года назад

      ع

    • @muhammadahmadrayan7148
      @muhammadahmadrayan7148 2 года назад +1

      مشكور علي الشرح العظيم ده
      استفساري الميثود بتاعت insertbefore
      لو مفيش داتا هيخش في اول if اللي بتتشك ان الليست فاضية ويضيف النود
      ويخش كمان في if الثانية اللي بتتشك ان العنصر موجود فهيضيفه كمان فكده ضافه مرتين فالمفروض if الثانية تكون else

    • @EasternBoss
      @EasternBoss Год назад

      الله يعطيك العافية لو تثبت التعليق في البداية يكون افضل

    • @safaaali2151
      @safaaali2151 6 месяцев назад

      شلون انسخه ؟؟؟؟؟

  • @shamshimada7336
    @shamshimada7336 Год назад +5

    بجد دي داتا استركتشر اي السهوله دي دا انا كنت خلاص اتعقدت من البروجرامنج بسببها جزاك الله كل خير ويسر لك كل صعب ❤

  • @shefaasar8096
    @shefaasar8096 2 года назад +8

    السلام عليكم ، دكتور محمد..
    الله يعطيك العافيه ويجزيك الخير ،ويسهل لك كل صعب بحياتك ، مثل ماسهلت لنا دراستنا وساعدتنا ، من أول مادخلت الجامعه وقناتك مكان المساعده لي ، 💚شُكراً جزيلاً دكتور🌟🌻

  • @Cartoon_bb
    @Cartoon_bb 2 года назад +5

    ربنا يكملها علي خير😍😍

  • @duaamelhem1371
    @duaamelhem1371 Год назад +1

    ما شاء الله والله شرح عال العال 100% استمر
    كنت ولا فاهمه الطبخة هلا صرت افهم الدنيا

  • @mohammadkadry1906
    @mohammadkadry1906 10 месяцев назад

    اقسم بالله انك فنان

  • @hossamemara9813
    @hossamemara9813 Год назад +2

    بارك الله فيك دكتورنا الغالي جعله الله في ميزان حسناتك

  • @SaDTuX
    @SaDTuX 8 месяцев назад

    الله يرضى عليك يا رب
    الشرح جميل اوى

  • @أحمدسرحان-ذ1ح
    @أحمدسرحان-ذ1ح Год назад

    بارك الله فيك يا دكتور وجزاك خيرا

  • @progamereg8046
    @progamereg8046 2 года назад

    ربنا يبارك في حضرتك بجد الواحد كان ضايع في linked list وشرحك مميز

  • @MohamedAli-pv7pe
    @MohamedAli-pv7pe Год назад

    الله يبارك في حضرتك يا دكتور
    والله يعجز اللسان عن شكرك ❤

  • @_4p_
    @_4p_ 7 месяцев назад +1

    مو المفروض في الـDelete نتأكد اذا كان الـitem غير موجود او قيمه خطأ ؟
    ،وشكرا على الشرح ❤️

  • @marouantanger1957
    @marouantanger1957 2 года назад +1

    قمت بمسح عنصر دون أن ارى الفديو فقط من بداية شرح دون نظر إلى الكود الذي كتبته
    الحمد لله هذا بفضلك يا استاذ وشكرا لك تحياااااتي لك

  • @Mostafa556-p3k
    @Mostafa556-p3k 2 года назад

    ربنا يبارك فى حضرتك يابشمهندس مصر والوطن العربي بيدعولك والله ياهندسه ياريت تكمل باقى الشروحات يابشمهندس ربنا يباركلك يارب ويجازيك خير يارب .

  • @Eagle_1997
    @Eagle_1997 2 года назад +1

    اشكرك وأرجو الاستمرا ر فى شرح الكورس

  • @Hagerkhaledkh
    @Hagerkhaledkh Год назад

    جزاك الله كل خير يا دكتور

  • @yousifahmed3408
    @yousifahmed3408 Год назад

    الله يبارك في صحة حضرتك
    ويجازيك خير علي ال حضرتك بتعملو

  • @MohammedALJabouri
    @MohammedALJabouri 2 года назад +3

    رائع دكتور بارك الله فيك ❤️

  • @waleed906
    @waleed906 2 года назад +1

    ربنا يباركلك ياهندسه

  • @engmustafamahmoud9814
    @engmustafamahmoud9814 Год назад

    جزاك الله خيرًا ونفع بك ❤ اتمنى تشرح ال Heap

  • @سلمىمأمون-ش8ش
    @سلمىمأمون-ش8ش 2 года назад +1

    جزاكم الله خيرا ي دكتور شرح رائع جدا

  • @ibrahemnjr9924
    @ibrahemnjr9924 2 года назад +2

    يلي ما فهم ليش الدكتور عمل ال prev = delptr الوايل عم تدور فلما تصل للفة قبل الاخيرة وبما ان ال prev = delptr القيمة تبعا لح تصير 30 و وحتزيد قيمة ال delptr ,وتصير 40 بعدين لح يتحقق من الشرط للمرة الاخيرة ويقول هل delptr->data!=40 , اختل الشرط وبالتالي ال prev = 30 and delptr =40

  • @EsraaGad-e7f
    @EsraaGad-e7f Год назад

    كل الشكر لحضرتك ❤❤❤❤

  • @abdulrahmanmasood8277
    @abdulrahmanmasood8277 Год назад

    جزاك الله خير الله يعطيك العافية دكتور محمد

  • @amaalhussien784
    @amaalhussien784 Год назад

    تسلم دكتور

  • @ashrafsaeed1695
    @ashrafsaeed1695 9 месяцев назад

    رائع

  • @nagyyasser2519
    @nagyyasser2519 Год назад

    شكرا

  • @GOHST-rx5mg
    @GOHST-rx5mg Год назад

    كل الشكر لك

  • @7amooo420
    @7amooo420 15 дней назад

    يا هندسه ممكن تشرح ازاي نعمل method بتعمل copy ل ال list دي

  • @youseefsheref3667
    @youseefsheref3667 Год назад

    السلام عليكم شكرا يا دكتور علي الشرح بس عندي تعليق صغير ‏
    في الفانكشن بتاعت delete قبل ما يبدأ اتأكد ان الرقم الي المستخدم دخله موجود اصلا في list عشان امسحه ولا لا
    Isfound();
    وشكرا لحضرتك ❤

  • @ayaabdeltwab2899
    @ayaabdeltwab2899 2 года назад +2

    الشرح مفيدجدا ماشاء الله بس احنا عندنا فالكيه بناخد حاجه ال linked list
    الي هو ال sursor وال prev pointer , دايما بيكونو موجودين وبنزودهم معانا ف اي كود فدول حاجه مختلفه عن دي ولا ايه؟

    • @lamiaa12
      @lamiaa12 10 месяцев назад

      هو بيتعامل ع single Linkedlist لكن الثاني اسمه doubly linkedlist

  • @adelgad1714
    @adelgad1714 Год назад +1

    ليه في النسيرت بيفور مقدرش احط نود جديدة قبل اخر نود عندي؟؟

  • @MohamedGamal-ci2ti
    @MohamedGamal-ci2ti 2 года назад +4

    يا دكتور وانا بنفذ الكود ظهر المشكلة دى واخدت الكود كوبى من حضرتك وبردو نفس المشكلة
    C6011: dereferencing NULL pointer temp

    • @DesoukiEgypt
      @DesoukiEgypt  2 года назад

      كود البرنامج كامل موجود في الكومنتات

    • @Laitoo_1
      @Laitoo_1 11 месяцев назад

      اخوي بشر عرفت حل المشكلة ولا باقي لي يومين احاول فيها

  • @mohamedalsarese7862
    @mohamedalsarese7862 Год назад

    يا الدكتورالكود بعطيني غلط لما اعمل insert before وعملت نسخ لوكدك ع الفاضي

  • @Eagle_1997
    @Eagle_1997 2 года назад +1

    نرجو شرح كورس الخوارزميات

    • @محمدعبدالوهابعبدالحليم
      @محمدعبدالوهابعبدالحليم 2 года назад

      فى كورس خوارزميات بيترفع حاليا في قناتى إلى الآن ٦ فيديوهات تقدر تشوفهم وتقيم الشرح 🤍
      تشرفونى إذا اشتركتوا 🧡
      شكرا 🤍

    • @Eagle_1997
      @Eagle_1997 2 года назад

      احنا مشتركين من ٣ سنين

  • @mohhamedelsakkaf8521
    @mohhamedelsakkaf8521 2 года назад +3

    ممكن نختصر دالة الحذف
    void Delete(int val)
    {
    Node*temp=head;
    while(true)
    {
    if(temp->next->data==val)
    {
    Node*ptr=temp->next;
    temp->next=temp->next->next;
    delete ptr;
    break;
    }
    temp=temp->next;
    }
    }

  • @EasternBoss
    @EasternBoss Год назад

    جربت اشغل البرنامج بكل الدوال ولكن لم يعمل بشكل منطقي هل هذا طبيعي ولا لا ؟

  • @amralaa2478
    @amralaa2478 2 года назад +3

    هو اي الفرق بين
    Node* new_node
    Node* new_node=new Node()

    • @Ahmed-iz4le
      @Ahmed-iz4le 2 года назад

      السطر الاول غلط و الكود مش هيشتغل صح معاك
      الكود التاني هو الطريقة الصح لعمل create لل list

    • @uosif_heikal
      @uosif_heikal 2 года назад +5

      الاول : هي انك تكريت بوينتر داخل النود الاصلية (وهو عبارة عن بوينتر فقط )
      الثانية : هي اني اكريت نود جديدة خالص من النود الاصلية وتبقي فيها نفس مميزات النود الاصلية زي انها تقدر تشيل الداتا والبوينتر نيكست بمعني اصح نسخة منو وطبعا" كلمة نيو تعني انك تروح تحجز مكان في الميموري للنود دي

    • @sntiago...
      @sntiago... 8 месяцев назад

      اي الفكره اني اني اكريت نود جديده خالص ​@@uosif_heikal

    • @ahmedmohamed-qv8jh
      @ahmedmohamed-qv8jh 3 месяца назад +1

      اول واحده مش هينفع لانك عملت نود بس ملهاش اي لازمه لانك محجزتلهاش مكان ف الميموري لكن التانيه بتقولو انا هعمل نود اسمها new_node احجزي مكان ف الميموري ب نوع النود دي كدا ()new node كدا انت حجزت مكان ف الميموري ب نوع نود لو مثلا عايز تحجز مكان ب نوع integer تكتب بدل new node تكتب new int كدا انت بتحجز مكان ف الذاكره ب نوع العنصر الي انت هتحجزو

  • @marouantanger1957
    @marouantanger1957 2 года назад +2

    سلام عليكم هل codebloks لا يدعم data structures لأنه لا بعمل معي في linked list
    عندما يدخل في دالة
    InsertFirst
    يخرج

    • @abdelrahmanelsaeed5897
      @abdelrahmanelsaeed5897 2 года назад

      راجع الكودالخاص بيك لاني بستخدم codebloks وشغال معايا تمام

    • @juprelle01
      @juprelle01 2 года назад

      @@abdelrahmanelsaeed5897 akhi 3ndak whatsap tichra7li jazaka laho khayran

    • @Ahmed-iz4le
      @Ahmed-iz4le 2 года назад

      لما تيجي تعمل create لل list لازم الكود يكون بالشكل ده
      Node * newnode = new Node ();
      و ال constructor اللي اسمه Node لازم جواه تكتب data = 0 و Next = NULL

  • @safamohamed4772
    @safamohamed4772 Год назад

    ممكن الكود يا باشمهندس

  • @ENG-MKEA
    @ENG-MKEA 8 месяцев назад

    21:55 / 56:54

  • @ENG-MKEA
    @ENG-MKEA 7 месяцев назад

    31:36 / 56:54

  • @adelnassim8143
    @adelnassim8143 2 года назад +2

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

    • @Mostafa556-p3k
      @Mostafa556-p3k 2 года назад

      ممكن اقول نصيحه ارجو متفهمنيش غلط كتاب الشرح بيختلف من واحد للتانى ممكن كتاب انا اشوفه حلو ميناسبكش وممكن العكس ده متوقف على عوامل كتير مش هقدر اوضحها فى البوسط عموما فى كتاب اسمه grocking algorithms حلو للاساسيات وبسيط للفهم

  • @ENG-MKEA
    @ENG-MKEA 8 месяцев назад

    9:20 / 56:54

  • @mazenmohamed3364
    @mazenmohamed3364 9 месяцев назад

    عشان ال fun دي مش شغاله عندي ف دي طريقه تانيه ليها
    void insert(int item, int newvalue)
    {
    Node* NewNode = new Node();
    NewNode->Data = newvalue;
    Node* temp = head; // to taverse
    Node* beforeItem = nullptr; // to insert befor item
    if(head == nullptr)
    {
    cout next;
    }
    if(beforeItem==nullptr)// in begin (while not used)
    {
    NewNode->next = head;
    head = NewNode;
    }
    else
    {
    NewNode->next = temp;
    beforeItem->next = NewNode;
    }
    }

  • @elsoulia7438
    @elsoulia7438 2 года назад

    19:33

  • @ENG-MKEA
    @ENG-MKEA 7 месяцев назад

    26:43 / 56:54

  • @ENG-MKEA
    @ENG-MKEA 7 месяцев назад

    51:37 / 56:54

  • @ENG-MKEA
    @ENG-MKEA 7 месяцев назад

    51:37 / 56:54