ראיון קצר ,מקצועי נטו, בין 30-60 דקות, מול מנהל הצוות ומנהל מנהלי הצווים.
שאלות מתוך הראיון
כיצד ניתן לממש cache כך שכל הפעולות עליו יהיו בזמן של O(1) , וכן שמבנה הנתונים שנתאר יכלול מנגנון של ״זיכרון״ , למשל אם קיימים 4 מקומות ב cache שלנו, ואיבר חמישי צריך להכנס, מבנה הנתונים ״יזכור״ מיהו האיבר הישן ביותר שנכנס למבנה - ויוציא אותו.
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2017
doubly linked list , ו- hash table .
על ידי hashing נגיע לאיבר ב O(1) ,
בביצוע get - אם האיבר במבנה, נעביר אותו ל head.
אם האיבר לא במבנה, נוציא את ה- tail מהמבנה ונכניס את האיבר החדש בתור head
פונקציה שהופכת רשימה מקושרת.
כתוב את הפונקציות הבאות:
void Load(List dependencies)
List getRoots //O(1) runtime
void MarkSuccess(int id)
void MarkFailure(int id)
the input is a tree of dependencies, the getRoots returns all the nodes that have no parent.
each node can have more than one parent.