الرسم البياني الملاحة مع C#
-
03-07-2019 - |
سؤال
أنا أعاني من quandry تحاول أن تصل مع خوارزمية جيدة للتنقل الرسم البياني التالي.
النص البديل http://www.archimedesinc.biz/images/StackOverflow/Tree.jpg
إذا اختار المستخدم "الجدول 21" كنقطة انطلاق ، أنا بحاجة إلى أن تكون قادرة على الحصول على المسار إلى أي طاولة أخرى من أنه ابتداء من الجدول.
مثلا:إذا اختار المستخدم "الجدول 21" كبداية ثم يضيف قيمة من "الجدول 8", أنا بحاجة إلى إنشاء المسار التالي "الجدول 21 -> الجدول 12 -> الجدول 9 -> الجدول 6 -> الجدول 8"،كل من الأوزان بين الجداول هي نفسها.
يبدو أنني نسيت مهاراتي في التعامل مع توجيه الرسوم البيانية, و لا يمكن التفكير في خوارزمية جيدة.أنا لا أسأل عن حل ، ولكن فقط دفعة في الاتجاه الصحيح.
شكرا لك!
المحلول
بحث اتساع الأول سوف تجد أقصر طريق: http://en.wikipedia.org/wiki/Breadth-first_search
نصائح أخرى
منذ أن قلت حواف كلها من نفس الوزن ، الخاص ديكسترا الخوارزمية (بلدي المعتادة الخيار الأول لهذا النوع من الشيء) فقط سوف تتحلل إلى اتساع البحث الأولى لذا أقترح استخدام تلك البساطة.
يمكنك الاختيار من بين عدد من خوارزميات تحديد أقصر الطرق. QuickGraph هو جيد في هذا النوع من الشيء.