البرمجة

إضافة عنصر إلى نهاية قائمة متصلة

بالطبع، فهم طريقة إضافة عنصر إلى نهاية قائمة متصلة (Linked List) يمثل خطوة أساسية في فهم كيفية عمل هذه الهياكل البيانية. تأتي قوة القوائم المتصلة من القدرة على تغيير البيانات بسهولة دون الحاجة إلى تحديد مساحة ثابتة مسبقًا.

ما تفعله في الكود الذي قدمته هو إنشاء عنصر جديد ووضعه في بداية القائمة المتصلة، وليس في نهايتها. لإضافة عنصر إلى نهاية القائمة المتصلة، يجب عليك تبحث عن آخر عنصر في القائمة ثم إضافة العنصر الجديد بعد ذلك.

لتحقيق هذا، يمكنك تعديل دالة الإضافة في الفئة LinkedList لتأخذ بعين الاعتبار الحالة التي يكون فيها القائمة المتصلة فارغة. في حال كانت القائمة فارغة، يمكنك ببساطة جعل العنصر الجديد يكون العنصر الرئيسي (الذي يشير إليه الرأس)، وإلا فسيكون عليك البحث عن العنصر الأخير وإعادة توجيه مؤشر العنصر الأخير إلى العنصر الجديد.

إليك كيفية تعديل الكود لتحقيق ذلك:

python
class Node: def __init__(self, item, next_node=None): self.item = item self.next = next_node class LinkedList: def __init__(self): self.head = None def add(self, item): if self.head is None: self.head = Node(item) return current = self.head while current.next is not None: current = current.next current.next = Node(item) def is_empty(self): return self.head is None def insert_at_end(linked_list, item): linked_list.add(item) # تجربة الاستخدام my_linked_list = LinkedList() my_linked_list.add(1) my_linked_list.add(2) my_linked_list.add(3) insert_at_end(my_linked_list, 4) current = my_linked_list.head while current is not None: print(current.item) current = current.next

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

المزيد من المعلومات

بالطبع، دعني أواصل الشرح.

في الكود المقدم، قمنا بإجراء التعديلات اللازمة في دالة الإضافة في فئة LinkedList لتمكين إضافة عنصر إلى نهاية القائمة المتصلة بشكل صحيح. وهذا ما يمكننا تفسيره بالتفصيل:

  1. في البداية، نقوم بفحص ما إذا كانت القائمة المتصلة فارغة أم لا باستخدام الشرط if self.head is None.
  2. إذا كانت القائمة فارغة (يعني self.head يساوي None)، فإننا نقوم بإنشاء عنصر جديد ونجعله العنصر الرئيسي في القائمة المتصلة عن طريق تعيين self.head إليه.
  3. إذا لم تكن القائمة فارغة، فإننا نبدأ بتحديد الموضع الصحيح لإضافة العنصر الجديد. نقوم بتعيين current إلى self.head ونبدأ في التنقل عبر القائمة المتصلة حتى نصل إلى العنصر الأخير الذي يشير إليه current.next is None.
  4. بمجرد وصولنا إلى العنصر الأخير، نقوم بإنشاء عنصر جديد ونربطه بالعنصر الأخير عن طريق تعيين current.next إليه.

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

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر