כותב |
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 06 April 2008 בשעה 17:47 | | IP רשוּם
|
|
|
|
שלום, אני צריכה עזרה: אני מחפשת מימוש ב C# של בניית עץ ומימוש של חיפוש בעץ בשיטת bottom-up.
אני לא מצאתי, אשמח אם תוכלו לעזור לי, זה יחסוך לי זמן רב מאוד :)
תודה מראש, מירב.
|
חזרה לתחילת העמוד |
|
|
virtual888 משתמש מתחיל
הצטרף / הצטרפה: 09 April 2008
משתמש: מנותק/ת הודעות: 26
|
נשלח בתאריך: 09 April 2008 בשעה 18:18 | | IP רשוּם
|
|
|
|
Class BTreeNode } ;public BTreeNode leftBranch ; public BTreeNode rightBranch ; public type storedValue
{
זה המימוש בקשר לחיפוש אני לא זוכר, תסבירי את החימוש ואני יביא לך..
|
חזרה לתחילת העמוד |
|
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 15 April 2008 בשעה 19:44 | | IP רשוּם
|
|
|
|
בעצם מימוש של עץ(שלם אך לא מאוזן) זה ברשימה מקושרת, נכון?
חיפוש שאני מחפשת הוא POST ORDER:
הוא הולך ככה: סייר בתת עץ ימני, סייר בתת עץ שמאלי, לבקר בשורש. אני יודעת שהמימוש שלו רקורסיבי, אבל לא מצאתי כלום.
תודה רבה רבה!
מירב.
|
חזרה לתחילת העמוד |
|
|
virtual888 משתמש מתחיל
הצטרף / הצטרפה: 09 April 2008
משתמש: מנותק/ת הודעות: 26
|
נשלח בתאריך: 16 April 2008 בשעה 13:03 | | IP רשוּם
|
|
|
|
המימוש של POSTORDER
VOID POSTORDER(BTreenode node) { if (node==null) return; POSTORDER(node.leftBranch); POSTORDER(node.rightBranch); Console.WriteLine("node:",node.storedValue); }
|
חזרה לתחילת העמוד |
|
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 16 April 2008 בשעה 16:16 | | IP רשוּם
|
|
|
|
תודה רבה!
|
חזרה לתחילת העמוד |
|
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 19 April 2008 בשעה 17:40 | | IP רשוּם
|
|
|
|
היי
אני מחפשת גם קוד של הכנסת מידע לעץ (לא בינארי ולא מאוזן אך שלם).
על מנת להשתמש במידע שבעץ אני אשתמש בפונקציית POST ORDER
תודה רבה רבה,
מירב
|
חזרה לתחילת העמוד |
|
|
Dark Phoenix משתמש פעיל
הצטרף / הצטרפה: 22 December 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 50
|
נשלח בתאריך: 20 April 2008 בשעה 00:51 | | IP רשוּם
|
|
|
|
בגלל שעץ הוא הגדרה רקורסיבית, כל צומת נחשבת עץ. אז כדי להכניס לעץ, נניח שהפונקציה מקבלת את הצומת שאליה אנחנו רוצים להכניס בן. הבעיה היא שהעץ הוא בעל דרגה לא ידועה (עץ לא בינארי ולא ידועה דרגתו), בגלל זה אפשר להשתמש בממשק של רשימה (במקרה של post order אפשר להשתמש בתור אבל זה לא חשוב), ולהוסיף לרשימה את הכתובת של הבן החדש. את הבן החדש מוסיפים דרך הקצאה דינאמית ונותנים לו רשימה ריקה בתור הבנים שלו בהצלחה (:
|
חזרה לתחילת העמוד |
|
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 20 April 2008 בשעה 10:17 | | IP רשוּם
|
|
|
|
יש אפשרות לראות מימוש של זה? אני מוצאת הרבה מימושים של עץ בינארי וזה לא מה שאני צריכה :(
אני מאוד מאוד אשמח אם אוכל לראות את המימוש או לפחות pseudo code.
תודה רבה,
מירב.
|
חזרה לתחילת העמוד |
|
|
Dark Phoenix משתמש פעיל
הצטרף / הצטרפה: 22 December 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 50
|
נשלח בתאריך: 20 April 2008 בשעה 11:32 | | IP רשוּם
|
|
|
|
המימוש ממש פשוט, הבעיה היא בהגדרת העץ הלא בינארי. אני אנסה לכתוב את המימוש ב-C#:
Class BTreeNode { public LIST nodes; public integer storedValue;
{
מימוש של post order בעץ לא בינארי: VOID POSTORDER(BTreenode node) { if (node==null) return; q = list_next(node.nodes,list_anchor(node.nodes)); while (q != NULL) { POSTORDER(list_retrieve(node.nodes, q)); q = list_next(node.nodes,q); } Console.WriteLine("node:",node.storedValue); { זה מימוש עם ממשק של רשימה (אם את לומדת עץ בטח כבר סיימת רשימה). אני ממש גרוע ב-C# אז תקנו אותי אם התחביר לא נכון בהכנסה: VOID insert_tree(BTreenode node, int value) { Leaf = new Btreenode(); List_init(Leaf.nodes); Leaf.Stored_value = value; List_insert(node.nodes,list_anchor(node.nodes),Leaf); } הסבר: יצרתי עץ חדש, בעל רשימת בנים -ריקה- וערך שניתן לי כפרמטר. הוספתי אותו לרשימת הבנים של node כי לשם התבקשתי להוסיף את הבן. שוב, אני לא בטוח שכתבתי נכון כי לא למדתי C# משהו
|
חזרה לתחילת העמוד |
|
|
מירב אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 20 April 2008 בשעה 14:16 | | IP רשוּם
|
|
|
|
היי תודה רבה על העזרה!
פונקציות list_anchor, list_next, list_reteive זה פונקציות קיימות בC#?
אני קצת התחלתי להסתבך..
|
חזרה לתחילת העמוד |
|
|