#017

  Рет қаралды 95,573

Adel Nasim

Adel Nasim

Күн бұрын

Пікірлер: 43
@vocabvibeswithmoonandcplusplus
@vocabvibeswithmoonandcplusplus 6 ай бұрын
فعلا افضل شرح للداتا ستركتشر بالعربي ماشاءالله شكرا دكتور يعطيك العافيه
@snowandl4195
@snowandl4195 2 жыл бұрын
عادل نسيم الله يسعدك ويسعد الاب والام الي جابوك , حرفيا انت ساعدتني في تحسين مهاراتي البرمجية وهذا ان شاء الله يغير حياتي للافضل , شكرا من القلب ❤
@kinomyyard
@kinomyyard Жыл бұрын
افضل شرح لموضوع data stacture باللغة العربية 👍👍
@ضحكتكتهمنا-ط3ر
@ضحكتكتهمنا-ط3ر 3 жыл бұрын
شرحك حلو بس راعي انى مش كل اللي بيشوفوا الفديو اذكياء حاول تبسط شويه معلش
@mohamed-eg4wz
@mohamed-eg4wz 3 жыл бұрын
يباشا انت شرحك عظيم ربنا يكرمك ♥️⚡
@amratef-e5w
@amratef-e5w Жыл бұрын
جزاك الله كل خير يا دكتور لكن ارجو من حضرتك مراعاة الفروق الفردية بين الطلاب والشرح يكون مبسط شوية لان مش كل الطلبة مستوى التفكير عندهم عالى وربنا يجعله فى ميزان حسناتك
@MrKabo-qu8tk
@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ج
@عبداللهالعاسمي-ن7ج Жыл бұрын
في خطأ بسيط عند الاستاذ يمكن ما انتبهلوا ولكن كان قصدوا newnode->next->prev=newnode; بهالطريقة بيخلي النود يلي بعد النود الجديد يشاور على النود الجديد
@abdelrahmanadel8998
@abdelrahmanadel8998 4 жыл бұрын
جامد جدا ماشاء الله
@youssefmasoud6768
@youssefmasoud6768 9 ай бұрын
جزاك الله خيراً
@gergessalahmorgan9182
@gergessalahmorgan9182 4 жыл бұрын
شكرا لمجهودك
@AdelNasim
@AdelNasim 4 жыл бұрын
حياك الله صديقي، بالتوفيق
@هاويروربماكاتب
@هاويروربماكاتب 5 жыл бұрын
اخوي عادل بدنا فيديو عن Doubly circular linked list 💔
@essamgamal616
@essamgamal616 Жыл бұрын
take it as task
@moataz2415
@moataz2415 3 жыл бұрын
20:47 في if(first->item = item) عادي ممكن نفس القيمة تتكرر ده linked list مش set المفروض remove تبقا بpos و الا تحزف كل القيم الي بتساوي item فالمفروض تكمل search في باقي list
@abdalahahmed4781
@abdalahahmed4781 Ай бұрын
انا ارى ان ال Doubly Linked List افضل من ناحية ال Time Complexity و لكن هى اسوء فى ال Space Complexity من ال Singly Linked List
@muhamedmansour7427
@muhamedmansour7427 5 жыл бұрын
اخ عادل واجهتني مشكلة في عملية ال 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--; } بس ما بيشتغل
@muradalhalbi9205
@muradalhalbi9205 4 жыл бұрын
شكرا الك الشرح ممتاز وواضح
@beesansameeh976
@beesansameeh976 3 жыл бұрын
دكتور بوركت جهودك بنفع اسال ليه بالديليت من ناحية الفيرست ما حكيت curr.next=null ;
@ahmed_egt1533
@ahmed_egt1533 Жыл бұрын
14:23 curr->next->prev = newNode; الجزء ده غلط 14:30 الصح في
@alsaeedbedair806
@alsaeedbedair806 Жыл бұрын
ترتيب اخر كودين بس لازم يتعكس في 14:23
@yousefsalamh6576
@yousefsalamh6576 5 жыл бұрын
عادل الكود فيه مشكله تحديدا 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; }
@yousefsalamh6576
@yousefsalamh6576 5 жыл бұрын
المفروض تكون current =first مش first->next
@AdelNasim
@AdelNasim 5 жыл бұрын
@@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
@kareemsamir1587
@kareemsamir1587 4 жыл бұрын
اخى الفاضل ف الدقيقة 24 عند حذف النود بعد اكمال عملية الربط ف C++ اعطيت امر delete وقلت سابقا ان الحذف يتم تلقائيا فى باقى اللغات فانا اشتغل بالجافا فالمفترض بعد اكمال عملية الربط اقوم بجعل next لل current و pre لل current = null حتى لااجعل النود المحذوفة مربوطة باى شئ ويتم حذفها تلقائيا ف الجافا برجاء الرد على احى الكريم فعندى اشكال ف هذا
@hamoodahalabed8986
@hamoodahalabed8986 2 жыл бұрын
اه نفس الشي ب removeLast
@أحمدعبدالحميد-ل2ض
@أحمدعبدالحميد-ل2ض 5 жыл бұрын
مجهود رائع استاذي العزيز كان عندي سؤال 14:20 مش المفروض Newnode->next->prev=newnode; بدل Cur->next->prev=newnode;
@AdelNasim
@AdelNasim 5 жыл бұрын
يسعدك صديقي .. بزبط بالطريقتين ..
@ahmadalsibakhi2079
@ahmadalsibakhi2079 2 жыл бұрын
cur-> next->prev = newnode; cur-> next = newnode; أو cur-> next-= newnode; newnode-> next->prev = newnode; صحيح الطريقتين بنفعو ولكن مع مراعاة الترتيب المنطقي اي التسلسل المنطقي في عملية الاسناد حتى نقول ان الطريقتين صحيحتين وشكرااا لك مبدع دائما
@jowelalkourdy5545
@jowelalkourdy5545 Жыл бұрын
مرحبا سؤال لو سمحت.. انا عم بشتغل بالجافا عملت كلاس Node و كتبت فيه الitem يلي بدي ياه طيب وين اكتب ال first و last انو هو لازم نكتبهن خارج كلاس ال Node بأي كلاس؟ وشكرا جدا متابعتك من سورية🎉❤
@fairouzhassan1404
@fairouzhassan1404 5 ай бұрын
كلاس النود هيكون فيه prev ,next,item و الباقي في كلاس الdoubly list
@AhmedMohamed-rk2xv
@AhmedMohamed-rk2xv 3 жыл бұрын
ما هو الفرق بينdouble linked list وdoubly linked list ؟؟؟؟
@maybeomar8460
@maybeomar8460 3 жыл бұрын
نفس الشيء
@abk8323
@abk8323 2 жыл бұрын
بس فيه مشكله صغيرة لو تقدر تشرحهالي استاذ خلينا نقول انو انا بدي احذف رقم وهذاك الرقم في متكرر كذا مرة في اللينك ليست تبعي هل اذا عملت شرط cur->item=item رح يحذف كل رقم بيساوي للرقم اللي بدي احذفو ؟ كل التقدير لحضرتك استاذ 🌷
@thefirst4220
@thefirst4220 2 жыл бұрын
هيحذف اول رقم يقاابلو وبس
@zokhrof_wa_zomord
@zokhrof_wa_zomord 3 жыл бұрын
بارك الله فيك على الشرح...إذا في إمكان رجاءا تشرح لي كيف ممكن ننشئ a Doubly linked List لكن الداتا الى في نود تكون عبارة عن Object و ليس int
@youseffathi7123
@youseffathi7123 3 жыл бұрын
اكيد في الكورسات بيحطو int علشان الموضوع يكون سهل في الشرح و تركيزك يكون في الpointers و الحاجات التانية الصعبة أما الdata دي تقدر تحط اي حاجه فيها حتى لو linked list
@omo1234khk
@omo1234khk 2 жыл бұрын
مش المفروض الانديكس ل اول نود يكون 1 مش 0 لانو لحظة الانشاء للنود قمنا بكتابة count ++ 🤨
@muhammadtarekrefaat4901
@muhammadtarekrefaat4901 5 жыл бұрын
ممكن الكود!!
@AdelNasim
@AdelNasim 5 жыл бұрын
تفضل .. github.com/Adel-Nasim/Data-Structures/blob/master/Doubly%20Linked%20List.txt
@mohammadfareedqaddah6460
@mohammadfareedqaddah6460 5 жыл бұрын
ممكن الكود بلغة جافا .. ويعطيك الف عافية
@dbXk-q1i
@dbXk-q1i Ай бұрын
فيما يلي الكود المحول إلى لغة Java: class DoublyLinkedList { private class Node { int item; Node next; Node prev; Node(int item) { this.item = item; this.next = null; this.prev = null; } } private Node first; private Node last; private int count; public DoublyLinkedList() { first = null; last = null; count = 0; } public boolean isEmpty() { return first == null; } public void destroy() { first = null; last = null; count = 0; } public void insertLast(int val) { Node newNode = new Node(val); if (count == 0) { first = last = newNode; } else { newNode.prev = last; last.next = newNode; last = newNode; } count++; } public void insertFirst(int item) { Node newNode = new Node(item); if (count == 0) { first = last = newNode; } else { newNode.next = first; first.prev = newNode; first = newNode; } count++; } public void insertAt(int pos, int item) { if (pos < 0 || pos > count) { System.out.println("Out Of Range ...!"); } else { if (pos == 0) { insertFirst(item); } else if (pos == count) { insertLast(item); } else { Node newNode = new Node(item); Node current = first; for (int i = 1; i < pos; i++) { current = current.next; } newNode.next = current.next; newNode.prev = current; if (current.next != null) { current.next.prev = newNode; } current.next = newNode; count++; } } } public void removeFirst() { if (isEmpty()) { System.out.println("Empty List"); } else if (count == 1) { first = last = null; } else { first = first.next; if (first != null) { first.prev = null; } } count--; } public void removeLast() { if (isEmpty()) { System.out.println("Empty List"); } else if (count == 1) { first = last = null; } else { last = last.prev; if (last != null) { last.next = null; } } count--; } public void deleteNthNode(int pos) { if (pos < 0 || pos >= count) { System.out.println("Out Of Range"); } else if (pos == 0) { removeFirst(); } else if (pos == count - 1) { removeLast(); } else { Node current = first; for (int i = 0; i < pos; i++) { current = current.next; } current.prev.next = current.next; current.next.prev = current.prev; count--; } } public void remove(int item) { if (isEmpty()) { System.out.println("Empty List Can't Remove"); return; } if (first.item == item) { removeFirst(); return; } Node current = first.next; while (current != null && current.item != item) { current = current.next; } if (current == null) { System.out.println("The item is not there"); } else if (current == last) { removeLast(); } else { current.prev.next = current.next; if (current.next != null) { current.next.prev = current.prev; } count--; } } public void display() { if (isEmpty()) { System.out.println("Empty List Can't Display...!"); } else { Node temp = first; while (temp != null) { System.out.print(temp.item + " "); temp = temp.next; } } System.out.println(); } public void reverseDisplay() { if (isEmpty()) { System.out.println("Empty List Can't Display Reverse...!"); } else { Node temp = last; while (temp != null) { System.out.print(temp.item + " "); temp = temp.prev; } } System.out.println(); } public static void main(String[] args) { DoublyLinkedList dl = new DoublyLinkedList(); dl.insertAt(0, 4); dl.insertAt(1, 6); dl.insertAt(2, 7); dl.insertFirst(2); dl.insertLast(10); dl.remove(7); dl.display(); dl.reverseDisplay(); } } ملاحظات: 1. تم تحويل الكود من C++ إلى Java مع الحفاظ على نفس الوظائف والبنية. 2. استبدلت كلمات C++ المخصصة مثل cout وnew بما يناسب Java مثل System.out.println وnew Node(...). 3. تم استخدام الفئات الداخلية لتمثيل العقد (Nodes).
#018 [Data Structures] - Introduction To Trees
15:15
Adel Nasim
Рет қаралды 159 М.
10 - | C++ Data Structures | -  | Stack Using Linked Lists | - | تراكيب البيانات |
53:14
‫محمد الدسوقى (‪Mohamed El Desouki‬‏)‬‎
Рет қаралды 89 М.
번쩍번쩍 거리는 입
0:32
승비니 Seungbini
Рет қаралды 182 МЛН
UFC 287 : Перейра VS Адесанья 2
6:02
Setanta Sports UFC
Рет қаралды 486 М.
Doubly Linked List | Insert, Delete, Complexity Analysis
17:17
Blue Tree Code
Рет қаралды 71 М.
Learn Linked Lists in 13 minutes 🔗
13:24
Bro Code
Рет қаралды 386 М.
#013 [Data Structures] - Introduction To Linked List
9:26
Adel Nasim
Рет қаралды 203 М.
19- بالعربي Doubly Linked List Implementation
26:13
محمود سامي Hard-Code l
Рет қаралды 36 М.
Doubly Linked List - Implementation in C/C++
15:21
mycodeschool
Рет қаралды 592 М.
شرح الـ stack - data structure (stack)
12:01
Mega Code
Рет қаралды 160 М.
번쩍번쩍 거리는 입
0:32
승비니 Seungbini
Рет қаралды 182 МЛН