0Pricing
C Academy · درس

القوائم المرتبطة

تعلّموا كيفية عمل القوائم المرتبطة وكيفية تنفيذ عمليات مثل الإدراج والحذف

القوائم المرتبطة درس مجاني في C Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 3 دروس في المجموع.

القوائم المرتبطة في C

القوائم المرتبطة في C

القائمة المرتبطة هي بنية بيانات ديناميكية تتصل فيها العناصر (العُقد) باستخدام المؤشرات.

في هذا الدرس، ستتعلمون:

  • كيفية عمل القوائم المرتبطة.
  • كيفية إدراج العُقد وحذفها في قائمة مرتبطة.
  • مزايا القوائم المرتبطة مقارنةً بالمصفوفات.
القوائم المرتبطة — رسم توضيحي 1

مثال: تعريف عقدة قائمة مرتبطة

مثال: تعريف عقدة قائمة مرتبطة

في C، تُعرَّف عقدة القائمة المرتبطة باستخدام struct يحتوي على حقل بيانات ومؤشر إلى العقدة التالية.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

int main() {
    struct Node *head = NULL;
    return 0;
}

إدراج عقدة في البداية

إدراج عقدة في البداية

لإدراج عقدة جديدة في بداية قائمة مرتبطة:

  • أنشئوا عقدة جديدة.
  • اضبطوا مؤشر next فيها ليشير إلى الرأس الحالي.
  • حدّثوا مؤشر الرأس.

مثال: إدراج عقدة في البداية

مثال: إدراج عقدة في البداية

يدرج هذا البرنامج عقدة جديدة في بداية قائمة مرتبطة.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void insertAtBeginning(struct Node **head, int newData) {
    struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 10);
    printf("Inserted: %d\n", head->data);
    return 0;
}

حذف عقدة

حذف عقدة

لحذف عقدة من قائمة مرتبطة:

  • اعثروا على العقدة المراد حذفها.
  • حدّثوا مؤشر next في العقدة السابقة.
  • حرروا ذاكرة العقدة المحذوفة.

مثال: حذف عقدة

مثال: حذف عقدة

يحذف هذا البرنامج عقدة من قائمة مرتبطة.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void deleteNode(struct Node **head, int key) {
    struct Node *temp = *head, *prev;
    if (temp != NULL && temp->data == key) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) return;
    prev->next = temp->next;
    free(temp);
}

int main() {
    struct Node *head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 10;
    head->next = NULL;
    deleteNode(&head, 10);
    return 0;
}

مزايا القوائم المرتبطة

مزايا القوائم المرتبطة

للقوائم المرتبطة عدة مزايا مقارنةً بالمصفوفات:

  • حجم ديناميكي (لا حاجة إلى تحديد الحجم مسبقًا).
  • إدراج وحذف بكفاءة.
  • لا يحدث هدر للذاكرة بسبب الأحجام الثابتة.

الملخص

الملخص

في هذا الدرس، تعلمتم:

  • ما القوائم المرتبطة وكيف تعمل.
  • كيفية إدراج العُقد وحذفها.
  • مزايا القوائم المرتبطة مقارنةً بالمصفوفات.

سنستكشف بعد ذلك المكدسات والطوابير في C!

القوائم المرتبطة — رسم توضيحي 9

الأسئلة الشائعة

هل درس «القوائم المرتبطة» مجاني؟

نعم — نص درس «القوائم المرتبطة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 3 دروس في المجموع.

ماذا ستتعلم في «القوائم المرتبطة»؟

تعلّموا كيفية عمل القوائم المرتبطة وكيفية تنفيذ عمليات مثل الإدراج والحذف تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «القوائم المرتبطة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. القوائم المرتبطة
  2. المكدسات والطوابير
  3. الأشجار والرسوم البيانية
← العودة إلى C Academy