logo

دروس هياكل البيانات

دروس DS

يوفر البرنامج التعليمي لهياكل البيانات (DS) المفاهيم الأساسية والمتقدمة لبنية البيانات. تم تصميم البرنامج التعليمي الخاص ببنية البيانات للمبتدئين والمحترفين.

هيكل البيانات هو وسيلة لتخزين وتنظيم البيانات بحيث يمكن استخدامها بكفاءة.

يتضمن البرنامج التعليمي لبنية البيانات جميع موضوعات بنية البيانات مثل المصفوفة والمؤشر والبنية والقائمة المرتبطة والمكدس وقائمة الانتظار والرسم البياني والبحث والفرز والبرامج وما إلى ذلك.

ما هو هيكل البيانات؟

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

بنية البيانات ليست أي لغة برمجة مثل C وC++ وJava وما إلى ذلك. إنها مجموعة من الخوارزميات التي يمكننا استخدامها في أي لغة برمجة لتنظيم البيانات في الذاكرة.

ولهيكلة البيانات في الذاكرة، تم اقتراح عدد 'ن' من الخوارزميات، وتعرف جميع هذه الخوارزميات بأنواع البيانات المجردة. أنواع البيانات المجردة هذه هي مجموعة القواعد.

دروس هياكل البيانات

أنواع هياكل البيانات

هناك نوعان من هياكل البيانات:

عد SQL متميزة
  • بنية البيانات البدائية
  • بنية البيانات غير البدائية

بنية البيانات البدائية

هياكل البيانات البدائية هي أنواع بيانات بدائية. إن int وchar وfloat وdouble والمؤشر هي هياكل البيانات البدائية التي يمكنها الاحتفاظ بقيمة واحدة.

بنية البيانات غير البدائية

تنقسم بنية البيانات غير البدائية إلى نوعين:

أمر آرب
  • بنية البيانات الخطية
  • بنية البيانات غير الخطية

هيكل البيانات الخطية

يُعرف ترتيب البيانات بطريقة تسلسلية ببنية البيانات الخطية. هياكل البيانات المستخدمة لهذا الغرض هي المصفوفات والقائمة المرتبطة والمكدسات وقوائم الانتظار. في هياكل البيانات هذه، يرتبط عنصر واحد فقط بعنصر آخر في شكل خطي.

عندما يتم توصيل عنصر واحد بعدد 'n' من العناصر المعروفة باسم بنية البيانات غير الخطية. أفضل مثال هو الأشجار والرسوم البيانية. وفي هذه الحالة يتم ترتيب العناصر بطريقة عشوائية.

سنناقش هياكل البيانات المذكورة أعلاه باختصار في المواضيع القادمة. الآن، سوف نرى العمليات المشتركة التي يمكننا تنفيذها على هياكل البيانات هذه.

يمكن أيضًا تصنيف هياكل البيانات على النحو التالي:

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

العمليات الكبرى

العمليات الرئيسية أو المشتركة التي يمكن تنفيذها على هياكل البيانات هي:

    يبحث:يمكننا البحث عن أي عنصر في بنية البيانات.فرز:يمكننا فرز عناصر بنية البيانات إما بترتيب تصاعدي أو تنازلي.إدراج:يمكننا أيضًا إدراج العنصر الجديد في بنية البيانات.تحديث:يمكننا أيضًا تحديث العنصر، أي يمكننا استبدال العنصر بعنصر آخر.حذف:يمكننا أيضًا إجراء عملية الحذف لإزالة العنصر من بنية البيانات.

ما هي بنية البيانات؟

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

يقول ADT ماذا يجب القيام به ويخبرنا هيكل البيانات كيف يجب القيام به. بمعنى آخر، يمكننا القول أن ADT يمنحنا المخطط بينما توفر بنية البيانات الجزء الخاص بالتنفيذ. والآن يطرح السؤال: كيف يمكن للمرء معرفة بنية البيانات التي سيتم استخدامها في ADT معين؟

نظرًا لأنه يمكن تنفيذ هياكل البيانات المختلفة في ADT معين، ولكن تتم مقارنة عمليات التنفيذ المختلفة من حيث الزمان والمكان. على سبيل المثال، يمكن تنفيذ Stack ADT بواسطة كل من المصفوفات والقائمة المرتبطة. لنفترض أن المصفوفة توفر كفاءة الوقت بينما توفر القائمة المرتبطة كفاءة المساحة، لذلك سيتم اختيار القائمة الأكثر ملاءمة لمتطلبات المستخدم الحالي.

مزايا هياكل البيانات

فيما يلي مزايا بنية البيانات:

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

مؤشر هياكل البيانات


أساسيات DS

  • مقدمة دي إس
  • تحليل مقارب
  • هيكل DS

صفيف DS

  • 2D Array

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

localdate java
  • قائمة مرتبطة
    • الإدراج في البداية
    • الإدراج في النهاية
    • الإدراج بعد العقدة المحددة
    • الحذف في البداية
    • الحذف في النهاية
    • الحذف بعد العقدة المحددة
    • عبور
    • يبحث
  • قائمة مرتبطة مضاعفة
    • الإدراج في البداية
    • الإدراج في النهاية
    • الإدراج بعد العقدة المحددة
    • الحذف في البداية
    • الحذف في النهاية
    • حذف العقدة التي أعطت البيانات
    • عبور
    • يبحث
  • قائمة مرتبطة دائرية
    • الإدراج في البداية
    • الإدراج في النهاية
    • الحذف في البداية
    • الحذف في النهاية
    • عبور
    • يبحث
  • قائمة دائرية مزدوجة
    • الإدراج في البداية
    • الإدراج في النهاية
    • الحذف في البداية
    • الحذف في النهاية

دي إس ستاك

ذيل دي إس

شجرة دي إس

الرسم البياني DS

بحث DS

فرز DS

اسئلة المقابلة

ياسمين ديفيس عندما كانت طفلة
  • برنامج لإنشاء وعرض قائمة مرتبطة منفردة
  • برنامج لإنشاء قائمة مرتبطة بشكل فردي من العقد n وحساب عدد العقد
  • برنامج لإنشاء قائمة مرتبطة بشكل فردي من العقد n وعرضها بترتيب عكسي
  • برنامج لحذف عقدة جديدة من بداية القائمة المرتبطة بشكل فردي
  • برنامج لحذف عقدة جديدة من منتصف القائمة المرتبطة بشكل فردي
  • برنامج لحذف عقدة من نهاية القائمة المرتبطة بشكل فردي
  • برنامج لتحديد ما إذا كانت القائمة المرتبطة بشكل فردي هي المتناظرة
  • برنامج للعثور على عقدة القيمة القصوى والدنيا من قائمة مرتبطة بشكل فردي
  • برنامج لإدراج عقدة جديدة في منتصف القائمة المرتبطة بشكل فردي
  • برنامج لإدراج عقدة جديدة في بداية القائمة المرتبطة بشكل فردي
  • برنامج لإدراج عقدة جديدة في نهاية القائمة المرتبطة بشكل فردي
  • برنامج لإزالة العناصر المكررة من قائمة مرتبطة بشكل فردي
  • برنامج للبحث عن عنصر في قائمة مرتبطة بشكل فردي
  • برنامج لفرز عناصر القائمة المرتبطة بشكل فردي
  • برنامج لمبادلة العقد في قائمة مرتبطة بشكل فردي دون تبادل البيانات
  • برنامج لمبادلة العنصر الأخير من القائمة المرتبطة بشكل فردي من العنصر الأول

برامج القائمة المرتبطة بشكل مضاعف

  • برنامج لتحويل شجرة ثنائية معينة إلى قائمة مرتبطة بشكل مضاعف
  • برنامج لإنشاء قائمة مرتبطة بشكل مضاعف من شجرة ثلاثية
  • برنامج لإنشاء قائمة مرتبطة بشكل مضاعف من العقد N وحساب عدد العقد
  • برنامج لإنشاء قائمة مرتبطة بشكل مضاعف من العقد N وعرضها بترتيب عكسي
  • برنامج لإنشاء وعرض قائمة مرتبطة بشكل مضاعف
  • برنامج لحذف عقدة جديدة من بداية القائمة المرتبطة بشكل مزدوج
  • برنامج لحذف عقدة جديدة من نهاية القائمة المرتبطة بشكل مزدوج
  • برنامج لحذف عقدة جديدة من منتصف القائمة المرتبطة بشكل مزدوج
  • برنامج للعثور على عقدة القيمة القصوى والدنيا من قائمة مرتبطة بشكل مزدوج
  • برنامج لإدراج عقدة جديدة في بداية القائمة المرتبطة بشكل مزدوج
  • برنامج لإدراج عقدة جديدة في نهاية القائمة المرتبطة بشكل مزدوج
  • برنامج لإدراج عقدة جديدة في منتصف القائمة المرتبطة بشكل مزدوج
  • برنامج لإزالة العناصر المكررة من القائمة المرتبطة بشكل مزدوج
  • برنامج لتدوير القائمة المرتبطة بشكل مضاعف بواسطة N Nodes
  • برنامج للبحث عن عنصر في قائمة مرتبطة بشكل مضاعف
  • برنامج لفرز عناصر القائمة المرتبطة بشكل مزدوج

برامج القائمة المرتبطة الدائرية

  • برنامج لإنشاء قائمة دائرية مرتبطة بالعقد N وإحصاء عدد العقد
  • برنامج لإنشاء قائمة دائرية مرتبطة بالعقد N وعرضها بترتيب عكسي
  • برنامج لإنشاء وعرض قائمة مرتبطة دائرية
  • برنامج لحذف عقدة جديدة من بداية القائمة المرتبطة الدائرية
  • برنامج لحذف عقدة جديدة من نهاية القائمة المرتبطة الدائرية
  • برنامج لحذف عقدة جديدة من منتصف القائمة المرتبطة الدائرية
  • برنامج للعثور على عقدة القيمة القصوى والدنيا من قائمة مرتبطة دائرية
  • برنامج لإدراج عقدة جديدة في بداية القائمة المرتبطة الدائرية
  • برنامج لإدراج عقدة جديدة في نهاية القائمة المرتبطة الدائرية
  • برنامج لإدراج عقدة جديدة في منتصف القائمة المرتبطة الدائرية
  • برنامج لإزالة العناصر المكررة من قائمة مرتبطة دائرية
  • برنامج للبحث عن عنصر في قائمة مرتبطة دائرية
  • برنامج لفرز عناصر القائمة المرتبطة الدائرية

برامج الشجرة

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

المتطلبات المسبقة

قبل أن تتعلم بنية البيانات، يجب أن يكون لديك المعرفة الأساسية بلغة C.

جمهور

تم تصميم البرنامج التعليمي الخاص بنا حول بنية البيانات لمساعدة المبتدئين والمحترفين.

مشكلة

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