כותב |
|
גוני אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 21 August 2007 בשעה 17:35 | | IP רשוּם
|
|
|
|
שלום לכל אנשי התכנה שאלתי היא פשוטה חלק קטן מתכנית שאני עובד עליה ב c# הוא לעשות עץ שיכיל שורש ואז מספר לא מוגבלים של פריטים ברמה הראשונה וכמו כן מספר לא מוגבל של פריטים ברמה השניה וכו
משום מה אינני מצליח למצוא ברחבי הרשת הגדרות פשוטות ליצירת עץ
תודה לכל העונים מראש
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 21 August 2007 בשעה 20:20 | | IP רשוּם
|
|
|
|
מזה בסגנון הזה:
עץ מוגדר בצורה רקורסיבית כערך ורשימה של תת-עצים.
הכל נראה מאוד פשוט ומצוחצח ב-c#
קוד:
class Tree<T> { private T value; private List<Tree<T>> subTrees;
public Tree(T value) : this(value, new Tree<T>[0]) { }
public Tree(T value, Tree<T>[ ] subTrees) { this.value = value; this.subTrees = new List<Tree<T>>(subTrees); }
public T Value { get { return value; } set { this.value = Value; } }
public Tree<T> this[int index] { get { return subTrees[index]; } set { subTrees[index] = value; } }
public int subTreesCount { get { return subTrees.Count; } }
public void AddSubTree(Tree<T> t, int index) { subTrees.Insert(index, t); }
public void AddSubTree(T t, int index) { subTrees.Insert(index, new Tree<T>(t)); }
public void RemoveSubTree(int index) { subTrees.RemoveAt(index); } } |
|
|
וקוד שימוש לדוגמא יהיה
קוד:
static void Main(string[ ] args) { Tree<string> t = new Tree<string>("root"); t.AddSubTree(new Tree<string>("-child3"),0); t.AddSubTree("-child2",0); t.AddSubTree("-child1",0); t[1].AddSubTree("--chile1.3", 0); t[1].AddSubTree("--chile1.2",0); t[1].AddSubTree("--chile1.1", 0);
PrintTree(t); }
// should have probebly done this with a stack/queue/whatever and not with recursion... private static void PrintTree(Tree<string> t) { if ( t == null ) return; Console.WriteLine(t.Value); for ( int i = 0 ; i < t.subTreesCount ; ++i ) PrintTree(t[i]); } |
|
|
כמובן שזה מאוד פשוט רק כדי להבהיר עקרון, זה לממש לא נבנה לשימוש נורמאלי וזה מאוד מצומצם....
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|