اذهب إلى المحتوى

السؤال

نشر

صمم برنامج باستخدامSingle linked list يقوم بالتالي/تكوين قاعدة بيانات للاصدقاء فيها اسم الصديق, ورقمه, ورقم هاتفه, ورقم الايميل. المطلوب1-عملية الاضافه من اي مكان.
2-عملية الحذف.
3-عملية التحديث.
4-عملية العرض على الشاشه. 

Recommended Posts

  • 0
نشر

خطوات مساعدة:

تشكيل العقدة، ضع فيها البيانات التي ذكرتها:

class Node { 
public: 
    int data; 
    Node* next; 
};

حيث تمثل كل عقدة شخص، يمكنك تسميتها person ..

كيفية الطباعة:

void printList(Node* n) 
{ 
    while (n != NULL) { 
        cout << n->data << " "; 
        n = n->next; 
    } 
} 

نمرر لتابع الطباعة العقدة الأولى، ثم يقوم بنفسه بالانتقال للعُقد المجاورة عن طريق المؤشر next .. وفي كل تكرار للحلقة يتم استبدال العقدة الحالية بالعقدة التالية.

بناء العقد:

int main() 
{ 
    Node* head = NULL; 
    Node* second = NULL; 
    Node* third = NULL; 
  
    // allocate 3 nodes in the heap 
    head = new Node(); 
    second = new Node(); 
    third = new Node(); 
  
    head->data = 1; // assign data in first node 
    head->next = second; // Link first node with second 
  
    second->data = 2; // assign data to second node 
    second->next = third; 
  
    third->data = 3; // assign data to third node 
    third->next = NULL; 
  
    printList(head); 
  
    return 0; 
} 

لاحظ تم تعريف 3 مؤشرات في الذاكرة من نوع Node ثم تم بنائهم بالدالة البانية ()new Node .

دالة الإضافة:

تعمل مثل دالة الطباعة، بحيث عليك تمرير وسيط للدالة على رقم العقدة التي تريد حشر العقدة الجديدة مكانها، وعندما تصل لها، تقوم ببناء العقدة و ربطها مع العقدة السابقة (الحالة) و تجعلها تشير للعقدة التالية (هي العقدة next للعقدة الحالية).

دالة الحذف:

أيضا تعمل مثل دالة الطباعة، بحيث عليك تمرير وسيط للدالة على رقم العقدة التي تريد حذفها أو أي بيانات أخرى مثل الرقم.

عندما تصل للعقدة الهدف تجعل العقدة السابقة لها تدل على العقدة التالية لها (أي تربط السابق باللاحق) وهكذا تصبح العقدة الحالية خارج السلسلة.

لتحرير سجل من الذاكرة نستخدم:

delete Node_name;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...