سؤال

لدي كائن عقدة يحدد مستوى العقدة

public class Node
{
    public int Level { get; set; }
}

أريد استخدام قائمة مرتبة من العقد لإنشاء عرض الشجرة

var nodes = new[]
{
    new Node(){Level = 0},
        new Node(){Level = 1},
        new Node(){Level = 1},
        new Node(){Level = 1},
            new Node(){Level = 2},
        new Node(){Level = 1},
            new Node(){Level = 2},
            new Node(){Level = 2},
                new Node(){Level = 3},
};

ما هي الطريقة الأكثر فعالية للقيام بذلك.

شكرًا

روهان

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

المحلول

متابعةً لـ Boo، ستحتاج إلى الاحتفاظ بمجموعة من العقد أثناء انتقالك إلى مستوى أعلى.إذا كان المستوى أعلى في العقدة الحالية، فادفع العقدة السابقة إلى المكدس واستخدمها كأصل.إذا كان المستوى أقل من العقدة السابقة، فقم بإخراج العقد n من المكدس (n = المستوى_السابق - المستوى_الحالي) واستخدم قمة المكدس الجديدة كالأصل.

نصائح أخرى

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

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