pseudoodocode للحصول على طلب بناء على الاعتماد

StackOverflow https://stackoverflow.com/questions/1882092

  •  18-09-2019
  •  | 
  •  

سؤال

حسنا، وضعي هو أن لدي قائمة بالعناصر وأحتاج إلى الحصول على ترتيب هذه العناصر بناء على المراجع التي لديهم. على سبيل المثال، دعنا نقول أن لدينا هذه العناصر: A، B، C، D، E، F

C و D ليس لديهم تبعيات لذلك يمكن أن يكون طلبهم 0. B هو الشخص الذي لديه أكثر مع C، D و A. لديه C و F لديه A و B

  C    D    
  | \  /
  A  /
/ | /
| B 
\ |
  F

في هذه الحالة C، D = 0 A = 1 B = 2 F = 3

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

هل كانت مفيدة؟

المحلول

خوارزمية بسيطة على النحو التالي.

تكرر المجموعة، تبحث عن عناصر ليس لها تبعيات: تذكر هذه العناصر ك "عناصر المستوى 0".

تكرر المجموعة مرة أخرى، تبحث عن عناصر قد تعتمد على "عناصر المستوى 0" ولكن ليس على عناصر أخرى: تذكر هذه العناصر ك "عناصر المستوى 1".

قم بتكرار المجموعة مرة أخرى، تبحث عن عناصر قد تعتمد على "عناصر المستوى 0" و / أو على "عناصر المستوى 1"، ولكن ليس على عناصر أخرى: تذكر هذه العناصر "عناصر المستوى 2".

إلخ.

توقف عندما يكون لكل عنصر مستوى معين.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top