عادل نسيم الله يسعدك ويسعد الاب والام الي جابوك , حرفيا انت ساعدتني في تحسين مهاراتي البرمجية وهذا ان شاء الله يغير حياتي للافضل , شكرا من القلب ❤
@kinomyyard Жыл бұрын
افضل شرح لموضوع data stacture باللغة العربية 👍👍
@ضحكتكتهمنا-ط3ر3 жыл бұрын
شرحك حلو بس راعي انى مش كل اللي بيشوفوا الفديو اذكياء حاول تبسط شويه معلش
@mohamed-eg4wz3 жыл бұрын
يباشا انت شرحك عظيم ربنا يكرمك ♥️⚡
@amratef-e5w Жыл бұрын
جزاك الله كل خير يا دكتور لكن ارجو من حضرتك مراعاة الفروق الفردية بين الطلاب والشرح يكون مبسط شوية لان مش كل الطلبة مستوى التفكير عندهم عالى وربنا يجعله فى ميزان حسناتك
@MrKabo-qu8tk Жыл бұрын
في الدقيقة 14 ازاي cur->next->prev = newnode وقبلها حضرتك حدثت الnext بتاع الـcur وخليته يشاور علي الnewnode يعني دلوقتي الnext بتاع الcur يساوي newnode يعني الprev بتاع الcur->next هيبقا تبع الـnewnode مش تبع الVAL3 علي حسب فهمي المفروض نعمل كدا cur->next->next->prev = newnode بحيث نقدر نوصل للVAL3 ونخلي الـprev بتاعها يشاور علي الnewnode أو ممكن نخلي الـcur->next = newnode بعد منربط الـprev بالـ newnode يعني نعكس السطرين اتمني حضرتك تفهمني النقطه دي وشكرا.
@عبداللهالعاسمي-ن7ج Жыл бұрын
في خطأ بسيط عند الاستاذ يمكن ما انتبهلوا ولكن كان قصدوا newnode->next->prev=newnode; بهالطريقة بيخلي النود يلي بعد النود الجديد يشاور على النود الجديد
@abdelrahmanadel89984 жыл бұрын
جامد جدا ماشاء الله
@youssefmasoud67689 ай бұрын
جزاك الله خيراً
@gergessalahmorgan91824 жыл бұрын
شكرا لمجهودك
@AdelNasim4 жыл бұрын
حياك الله صديقي، بالتوفيق
@هاويروربماكاتب5 жыл бұрын
اخوي عادل بدنا فيديو عن Doubly circular linked list 💔
@essamgamal616 Жыл бұрын
take it as task
@moataz24153 жыл бұрын
20:47 في if(first->item = item) عادي ممكن نفس القيمة تتكرر ده linked list مش set المفروض remove تبقا بpos و الا تحزف كل القيم الي بتساوي item فالمفروض تكمل search في باقي list
@abdalahahmed4781Ай бұрын
انا ارى ان ال Doubly Linked List افضل من ناحية ال Time Complexity و لكن هى اسوء فى ال Space Complexity من ال Singly Linked List
@muhamedmansour74275 жыл бұрын
اخ عادل واجهتني مشكلة في عملية ال remove اذا كان عندي مثلا LL فيها 5 عناصر 2 2 2 2 2 انا بريد اني الغي العنصر رقم 3 فقط..المفترض حسب فهمي اني اسوي هيك void del_at(int pos) { if (empty()) { cout next; } temp2->next->previous = temp2->previous; temp2->previous->next = temp2->next; delete temp2; } counter--; } بس ما بيشتغل
@muradalhalbi92054 жыл бұрын
شكرا الك الشرح ممتاز وواضح
@beesansameeh9763 жыл бұрын
دكتور بوركت جهودك بنفع اسال ليه بالديليت من ناحية الفيرست ما حكيت curr.next=null ;
@ahmed_egt1533 Жыл бұрын
14:23 curr->next->prev = newNode; الجزء ده غلط 14:30 الصح في
@alsaeedbedair806 Жыл бұрын
ترتيب اخر كودين بس لازم يتعكس في 14:23
@yousefsalamh65765 жыл бұрын
عادل الكود فيه مشكله تحديدا function remove اذا عندي على سبيل المثال list بهذا الشكل 50 40 30 20 10 بدي حذف 10 راح يحذف 10 و 20 المشكله بهذا المكان اعتقد Node*current = first->next; if (first->item == item)//delete the first element, special case { first = current->next; if (first != NULL) first->prev = NULL; delete current; return; }
@yousefsalamh65765 жыл бұрын
المفروض تكون current =first مش first->next
@AdelNasim5 жыл бұрын
@@yousefsalamh6576 يعطيك العافية اخ يوسف جربتو عندي بكل الحالات وما اعطى مشاكل .. انسى الي انا حاطو بـ comment انا مستدعي بالحذف بالـ special case : function -> removeFirst() هي نفس الكود جربو عندك مرة ثانية وخبرني شو بصير معك ....................................................................................... #include using namespace std; class doublyLinkedList { private: struct Node { int item; Node* next; Node* prev; }; Node* first; Node* last; int count; public: doublyLinkedList() { first = NULL; last = NULL; count = 0; } bool isEmpty() { return (first == NULL); } void destroy() { Node *temp; while (first != NULL) { temp = first; first = first->next; delete temp; } last = NULL; count = 0; } void insertLast(int val) { Node* newNode = new Node; newNode->item = val; if (count == 0) { first = last = newNode; newNode->next = newNode->prev = NULL; } else { newNode->next = NULL; newNode->prev = last; last->next = newNode; last = newNode; } count++; } void insertFirst(int item) { Node*newNode = new Node; newNode->item = item; if (count == 0) { first = last = newNode; newNode->next = newNode->prev = NULL; } else { newNode->next = first; newNode->prev = NULL; first->prev = newNode; first = newNode; } count++; } void insertAt(int pos, int item) { if (pos < 0 || pos > count) cout next; } newNode->next = current->next; newNode->prev = current; current->next->prev = newNode; current->next = newNode; count++; } } } void removeFirst() { if (count == 0) cout prev = NULL; delete current; } count--; } void deleteNthNode(int pos) { if (pos < 0 || pos >= count) { cout next; } current->prev->next = current->next; current->next->prev = current->prev; delete current; } count--; } void removeLast() { if (count == 0) cout next = NULL; delete current; count--; } } void remove(int item) { if (isEmpty()) { cout next; if (first->item == item)//delete the first element, special case { /* first = current->next; if (first != NULL) first->prev = NULL; delete current; return; */ removeFirst(); return; } else { while (current != NULL)//current->item!=element { if (current->item == item) break; current = current->next; } if (current == NULL) { cout next == NULL) { removeLast(); return; } else { current->prev->next = current->next; //if (current->next != NULL) current->next->prev = current->prev; delete current; count--; } } } void display() { if (isEmpty()) { cout
@kareemsamir15874 жыл бұрын
اخى الفاضل ف الدقيقة 24 عند حذف النود بعد اكمال عملية الربط ف C++ اعطيت امر delete وقلت سابقا ان الحذف يتم تلقائيا فى باقى اللغات فانا اشتغل بالجافا فالمفترض بعد اكمال عملية الربط اقوم بجعل next لل current و pre لل current = null حتى لااجعل النود المحذوفة مربوطة باى شئ ويتم حذفها تلقائيا ف الجافا برجاء الرد على احى الكريم فعندى اشكال ف هذا
@hamoodahalabed89862 жыл бұрын
اه نفس الشي ب removeLast
@أحمدعبدالحميد-ل2ض5 жыл бұрын
مجهود رائع استاذي العزيز كان عندي سؤال 14:20 مش المفروض Newnode->next->prev=newnode; بدل Cur->next->prev=newnode;
@AdelNasim5 жыл бұрын
يسعدك صديقي .. بزبط بالطريقتين ..
@ahmadalsibakhi20792 жыл бұрын
cur-> next->prev = newnode; cur-> next = newnode; أو cur-> next-= newnode; newnode-> next->prev = newnode; صحيح الطريقتين بنفعو ولكن مع مراعاة الترتيب المنطقي اي التسلسل المنطقي في عملية الاسناد حتى نقول ان الطريقتين صحيحتين وشكرااا لك مبدع دائما
@jowelalkourdy5545 Жыл бұрын
مرحبا سؤال لو سمحت.. انا عم بشتغل بالجافا عملت كلاس Node و كتبت فيه الitem يلي بدي ياه طيب وين اكتب ال first و last انو هو لازم نكتبهن خارج كلاس ال Node بأي كلاس؟ وشكرا جدا متابعتك من سورية🎉❤
@fairouzhassan14045 ай бұрын
كلاس النود هيكون فيه prev ,next,item و الباقي في كلاس الdoubly list
@AhmedMohamed-rk2xv3 жыл бұрын
ما هو الفرق بينdouble linked list وdoubly linked list ؟؟؟؟
@maybeomar84603 жыл бұрын
نفس الشيء
@abk83232 жыл бұрын
بس فيه مشكله صغيرة لو تقدر تشرحهالي استاذ خلينا نقول انو انا بدي احذف رقم وهذاك الرقم في متكرر كذا مرة في اللينك ليست تبعي هل اذا عملت شرط cur->item=item رح يحذف كل رقم بيساوي للرقم اللي بدي احذفو ؟ كل التقدير لحضرتك استاذ 🌷
@thefirst42202 жыл бұрын
هيحذف اول رقم يقاابلو وبس
@zokhrof_wa_zomord3 жыл бұрын
بارك الله فيك على الشرح...إذا في إمكان رجاءا تشرح لي كيف ممكن ننشئ a Doubly linked List لكن الداتا الى في نود تكون عبارة عن Object و ليس int
@youseffathi71233 жыл бұрын
اكيد في الكورسات بيحطو int علشان الموضوع يكون سهل في الشرح و تركيزك يكون في الpointers و الحاجات التانية الصعبة أما الdata دي تقدر تحط اي حاجه فيها حتى لو linked list
@omo1234khk2 жыл бұрын
مش المفروض الانديكس ل اول نود يكون 1 مش 0 لانو لحظة الانشاء للنود قمنا بكتابة count ++ 🤨