נגה פורסם 2014 ביולי 15 Share פורסם 2014 ביולי 15 אני משתמשת בפונקציה רקורסיבית המכניסה NODE חדש לעץ.אני רוצה לאחר ההכנסה לעדכן את כל הענף של הNODE הזה שיש לו NODE חדש.איך עושים את זה?איך אני "חוזרת אחורה בענף?"הקוד להכנסה:function setChildren(parentI, treeArr, newNode){ var type = typeof treeArr if (type == "object") { for (var key in treeArr) { if (treeArr[key].id == parentI) { treeArr[key].children.push(newNode); return key; } setChildren(parentI, treeArr[key].children, newNode); } } return null;} קישור לתוכן שתף באתרים אחרים More sharing options...
שכיר חרב פורסם 2014 ביולי 15 Share פורסם 2014 ביולי 15 דבר ראשון, מה זה ענף? עד כמה שידוע לי אין כזה מושג. האם הכוונה למסלול מהשורש עד לצומת החדש (ה-node שהרגע הוספת)?(למשל כאן אם הצומת החדש הוא 6 אז המסלול מהשורש אליו הוא 8 ואז 3 ואז 6.)אם זאת הכוונה אז את יכולה:1. לכתוב פונקציה שמקבלת צומת ומה שהיא עושה זה לעדכן את האב שלו (אם קיים). לאחר העדכון היא תקרא לעצמה, אבל הפעם הפרמטר יהיה האב. זה הכל.או:2. לעשות לולאת for על משתנה זמני שבהתחלה יחזיק את האב של הצומת שהרגע הוספת (או את עצמו, תלוי בדרישות שלך). בכל איטרציה יהיה עדכון של צומת, ואז קידום של המשתנה הזמני לאב שלו (עד שמנסים לקדם לאב של השורש). קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2014 ביולי 15 Share פורסם 2014 ביולי 15 תכתוב בבקשה בכותרת על איזו שפה מדובר. קישור לתוכן שתף באתרים אחרים More sharing options...
mikichi פורסם 2014 ביולי 22 Share פורסם 2014 ביולי 22 "חוזרת אחורה" זה בעצם מתבצע "אוטמאטית" ע"י הריקורסיה קישור לתוכן שתף באתרים אחרים More sharing options...
Second Edition פורסם 2014 באוגוסט 8 Share פורסם 2014 באוגוסט 8 הבן זוכר את הכתובת של האב ? קישור לתוכן שתף באתרים אחרים More sharing options...
shayfroid פורסם 2014 באוגוסט 17 Share פורסם 2014 באוגוסט 17 תוסיפי את הקוד שמבצע את עדכון הנדרש לאחר השורה של הקריאה הרקורסיבית. ועכשיו עם קצת יותר נימוק- תחשבי על זה כך: אנחנו יושבים מספר אנשים בשורה (כל אחד מייצג קריאה רקורסיבית אחת). אני ראשון ואני מעביר לך פתק עם ההוראות הבאות- אני צריך 6 ביצים. אם אין לך תעבירי את הפתק לבא בתור עם בקשה ל כמה שביקשתי פחות כמה שיש לך. אם נניח יש לך רק 2 ביצים את מחכה ל 4 ביצים שיחזרו מזה שממנו ביקשת. אחרי שהוא הביא לך את יתר 4 הביצים (שאולי היו לו ואולי העביר את הפתק הלאה לפי ההוראות) את מצרפת אותן ל 2 הביצים שהיו לך ומחזירה לי 6. באף שלב אף אחד לא ידע כמה ביצים היו לך. המידע הזה שמור אצלך למרות שביצעת בדיוק את ההוראות שבפתק כמו כל השאר. וחזרה לתכנית שלך- בכל קריאה רקורסיבית יש עותק של המשתנה treeArr עם ערך אחר, ועל עותק זה את מבצעת את העדכון, כך שבפועל הקוד לעדכון יהיה זהה בכל אחד מהצמתים בדרך. אני מקווה שההסבר שלי מספיק ברור כי נראה לי שזו יותר בעיה בהבנה של מנגנון הרקורסיה מאשר בעיית קוד נקודתית בפונקציה זו. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.