حذف العقدة من القائمة المترابطة - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: حذف العقدة من القائمة المترابطة Delete a Node from a Linked List

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

تقدم هذه الصفحة شرحاً لحذف العقدة من القائمة المترابطة في بنية البيانات، مع التركيز على التطبيق العملي بلغة Python. يبدأ المحتوى بتعريف فئة Node وفئة LinkedList، ويوضح كيفية إدراج عقدة جديدة بعد عقدة محددة باستخدام دالة insertAfter، مع مثال عملي لإنشاء قائمة مترابطة تحتوي على العقد 12 و99 وإدراج العقدة 37 بعد العقدة الرئيسية.

يتناول القسم الرئيسي عملية حذف العقدة من القائمة المترابطة، حيث يتم شرح آلية تغيير مؤشر العقدة السابقة لتوجيهه إلى العقدة التالية للعقدة المحذوفة، مما يجعل البيانات المحذوفة غير مفيدة ويحرر مساحة الذاكرة. يتم تقديم مثال توضيحي لحذف العقدة 37 من قائمة تحتوي على 12 و37 و99، مما ينتج عنه قائمة من عنصرين فقط.

يحتوي المحتوى على كود Python يوضح تنفيذ القائمة المترابطة وإدراج العقد، مما يوفر أساساً لفهم عملية الحذف. الصفحة مناسبة لمتعلمي البرمجة وعلوم الحاسب، وتدمج بين النظرية والتطبيق لتعزيز الفهم.

📄 النص الكامل للصفحة

# single node class Node: def __init__(self, data = None, next=None): self.data = data self.next = next# linked list with one head node class LinkedList: def __init__(self): self.head = None def insertAfter(new, prev): # create the new node new_node = Node(new) # make the next of the new node the same as the next of the previous node new_node.next = prev.next # make the next of the previous node the new node prev.next = new_node# create the linked list L_list = LinkedList()# add the first two nodes L_list.head = Node(12) second = Node(99) L_list.head.next = second# insert the new node after node 12 (the head of the list) insertAfter(37, L_list.head)# print the linked list node = L_list.head while node: print (node.data) node = node.next--- SECTION: حذف العقدة من القائمة المترابطة Delete a Node from a Linked List --- حذف العقدة من القائمة المترابطة Delete a Node from a Linked Listلحذف عقدة، عليك تغيير مؤشر العقدة التي تسبق العقدة المراد حذفها إلى مؤشر العقدة التي تلي العقدة المحذوفة. أصبحت العقدة المحذوفة (الثانية) عبارة عن بيانات غير مفيدة (Useless Data) وستُخصّص مساحة الذاكرة التي تشغلها لاستخدامات أخرى.--- SECTION: مثال: --- مثال:لديك قائمة مترابطة من ثلاثة عناصر: 12 و 37 و 99. وترغب في حذف العنصر 37. في النهاية، سيكون لديك قائمة من عنصرين: 12 و 99.2025 - 1447--- VISUAL CONTEXT --- **DIAGRAM**: Python Code for Linked List Node Insertion and Traversal Description: A block of Python code defining a Node class, a LinkedList class, and an insertAfter function. It demonstrates creating a linked list, adding initial nodes (12, 99), inserting a new node (37) after the head, and then printing the data of all nodes in the list, resulting in the output 12, 37, 99. Context: This code block visually illustrates the implementation of a linked list data structure and the process of inserting a node, which is a prerequisite for understanding node deletion.Context: Identifies the official source or publisher of the educational material.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

في سياق القوائم المترابطة، ما هي الطريقة الأساسية لحذف عقدة؟

الإجابة: لتغيير مؤشر العقدة التي تسبق العقدة المراد حذفها ليشير إلى العقدة التي تلي العقدة المحذوفة.

الشرح: تتطلب عملية الحذف إعادة توجيه مؤشر العقدة السابقة للعقدة المحذوفة لتتجاوز العقدة المحذوفة وتشير مباشرة إلى العقدة التالية لها، مما يقطع ارتباط العقدة المحذوفة من القائمة.

تلميح: كيف يمكن ربط العقدتين المجاورتين للعقدة المحذوفة ببعضهما البعض؟

بعد حذف عقدة من قائمة مترابطة، ماذا يحدث لمساحة الذاكرة التي كانت تشغلها العقدة المحذوفة؟

الإجابة: تُخصص لاستخدامات أخرى.

الشرح: عند حذف عقدة، تصبح البيانات التي كانت تحتويها غير مفيدة للنظام، ويتم تحرير مساحة الذاكرة التي كانت تشغلها لإعادة استخدامها من قبل البرنامج أو النظام.

تلميح: ما هو مصير البيانات التي لم تعد مرتبطة بالقائمة؟

في الكود المقدم، ما هي وظيفة الدالة `insertAfter(new, prev)`؟

الإجابة: تقوم بإنشاء عقدة جديدة بالقيمة `new` وإدراجها بعد العقدة `prev` في القائمة المترابطة.

الشرح: تقوم الدالة بإنشاء عقدة جديدة، ثم تجعل مؤشر العقدة الجديدة يشير إلى العقدة التالية للعقدة `prev`، وأخيراً تجعل مؤشر العقدة `prev` يشير إلى العقدة الجديدة، مما يضمن إدراجها في الموضع الصحيح.

تلميح: لاحظ كيف يتم تعديل المؤشرات في جسم الدالة.

كيف يتم حذف عقدة من قائمة مترابطة؟

الإجابة: لحذف عقدة، يتم تغيير مؤشر العقدة التي تسبق العقدة المراد حذفها إلى مؤشر العقدة التي تلي العقدة المحذوفة.

الشرح: يؤدي تغيير مؤشر العقدة السابقة إلى العقدة التالية إلى إزالة العقدة المطلوبة من التسلسل المنطقي للقائمة، مما يجعلها بيانات غير مفيدة.

تلميح: فكر في كيفية إعادة توجيه المؤشرات لتجاوز العقدة المراد حذفها.

التصنيف: صيغة/خطوات | المستوى: متوسط