مصطفى احمد شهاب احمد Comp نشر 12 أغسطس 2020 أرسل تقرير نشر 12 أغسطس 2020 (معدل) Write a program to create a linked list of 30 integers by adding a node at the front of the linked list. Print the created linked list in its normal order and print it again in reverse order. هل من الممكن حل هذا السؤال؟ تم التعديل في 12 أغسطس 2020 بواسطة عبود سمير تنسيق العنوان اقتباس
1 سمير عبود نشر 12 أغسطس 2020 أرسل تقرير نشر 12 أغسطس 2020 مرحباً .. يُمكنك عمل المطلوب من خلال البرنامج التالي: #include <iostream> using namespace std; // تعريف بنية العقدة التي تتكون منها القائمة المترابطة struct node { int data; // البيانات عبارة عن أعداد node *next; // مؤشر على العقدة القادمة }; // دالة مساعدة لطباعة البيانات بشكل معاكس إنطلاقا من عقدة ما void printReverse(node *head) { // شرط التوقف if (head == NULL) return; printReverse(head->next); // إستعمال الطريقة التعاودية cout << head->data << " "; } // تعريف صنف القائمة المترابطة class LinkedList { private: node *head,*tail; public: LinkedList() // الدالة البانية { head = NULL; tail = NULL; } void addNode(int n) // دالة لإضافة عقدة جديدة للقائمة { node *tmp = new node; tmp->data = n; tmp->next = NULL; if(head == NULL) { head = tmp; tail = tmp; } else { tail->next = tmp; tail = tail->next; } } void printList() // طباعة بيانات القائمة المترابطة { node *n = this->head; while (n != NULL) { cout << n->data << " "; n = n->next; } } void printReverseList() // طباعة بيانات القائمة المترابطة بشكل عكسي { printReverse(this->head); // إستعمال الدالة المساعدة السابقة مع تمرير رأس القائمة لها } void fillList(int total) // ملأ القائمة بعدد محدد من العناصر { int data; for (int i = 0; i < total; ++i) { cout << "data " << i << " = " << endl; cin >> data; addNode(data); // إستعمال دالة الإضافة } } }; int main() { LinkedList l; // تعريف قائمة مترابطة l.fillList(6); // ملأ القائمة ب 6 عناصر يُمكنك تغيير العدد حسب ما تريد l.printList(); // طباعة عناصر القائمة بشكلها الطبيعي cout << endl; l.printReverseList(); // طباعة عناصر القائمة بالشكل العكسي return 0; } و هذه نتيجة لتجربة البرنامج: يُمكنك تجربة البرنامج من خلال الرابط التالي: إضغط هنا للإطلاع على تفاصيل أكثر حول بنى أو هياكل المُعطيات أدعوك إلى قراءة توثيق موسوعة حسوب حول الموضوع: القوائم المترابطة توثيق موسوعة حسوب و بنى المعطيات ( Data Structure ) توثيق موسوعة حسوب بالتوفيق 1 اقتباس
السؤال
مصطفى احمد شهاب احمد Comp
Write a program to create a linked list of 30 integers by adding a node at the front of the linked list. Print the created linked list in its normal order and print it again in reverse order.
هل من الممكن حل هذا السؤال؟
تم التعديل في بواسطة عبود سميرتنسيق العنوان
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.