"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تنفيذ قائمة مرتبطة منفردة في بايثون

كيفية تنفيذ قائمة مرتبطة منفردة في بايثون

تم النشر بتاريخ 2024-11-02
تصفح:689

How to Implement Singly Linked List in Python

class Node:
    def __init__(self,value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def add_front(self,value):
        new_node = Node(value)
        new_node.next = self.head
        self.head = new_node
    def add_back(self,value):
        new_node = Node(value)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node
    def print_list(self):
        current = self.head
        while current is not None:
            print(current.value)
            current = current.next

list1 = LinkedList()

list1.add_front(1)
list1.add_front(2)
list1.add_back(3)
list1.print_list()

1. فئة العقدة:

  • يمثل عنصرًا فرديًا في القائمة المرتبطة.
  • كل عقدة لها سمتان: قيمة لتخزين البيانات وبجوارها للإشارة إلى العقدة التالية في القائمة.
  • عند إنشاء عقدة، يتم تعيين المؤشر التالي لها على لا شيء.

2. فئة القائمة المرتبطة:

  • إدارة عمليات القائمة المرتبطة.
  • يحتوي على رأس سمة يمثل نقطة البداية للقائمة المرتبطة. في البداية، يتم تعيين الرأس على لا شيء لأن القائمة فارغة.

3. طريقة add_front:

  • إضافة عقدة جديدة إلى مقدمة القائمة المرتبطة.
  • يتم إنشاء عقدة جديدة بالقيمة المحددة.
  • يتم تعيين المؤشر التالي للعقدة الجديدة على الرأس الحالي للقائمة.
  • يتم بعد ذلك تحديث رأس القائمة إلى العقدة الجديدة.

4. طريقة add_back:

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

5. طريقة print_list:

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

6. مثال الاستخدام:

  • تم إنشاء مثيل لـ LinkedList.
  • يتم استدعاء add_front مرتين لإضافة العقد ذات القيمتين 1 و 2 إلى مقدمة القائمة.
  • يتم استدعاء add_back لإضافة عقدة ذات القيمة 3 إلى نهاية القائمة.
  • يتم استدعاء print_list لطباعة قيم جميع العقد في القائمة المرتبطة. الإخراج هو 2، 1، 3، مما يوضح أنه تمت إضافة العقد بشكل صحيح.
بيان الافراج تم نشر هذه المقالة على: https://dev.to/thirumalesh/how-to-implement-singly-linked-list-in-python-40kc?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3