תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
hash_mod מתוך המחלקה hashtable שראינו בכיתה:self.hash_mod = lambda key: hash_func(key) % mhash_func, ציינו עבור כל מימוש האם הוא:math.log(x,b) מחזירה float המייצג (בקירוב) את הערך של .lambda x: x%10lambda x: random.randint(x)lambda x: 1lambda x: -1*xlambda x: int(math.log(x,2))IntegerBinaryTree, IntegerBinaryNode, המחלקות את המרחיבות BinaryTree<Integer>, BinaryNode<Integer> בהתאמה.IntegerBinaryTree את השיטה הבוליאנית pathSum(int sum) אשר מקבלת מספר שלם sum ומחזירה ערך true אם קיים מסלול כלשהו בעץ מהשורש לעלה אשר סכום המספרים בקודקודי המסלול הוא בדיוק sum. אם לא קיים מסלול כזה השיטה מחזירה ערך false (5 נקודות).IntegerBinaryNode (10 נקודות). 5
/ \
1 7
/ / \
6 2 9
/
4
difference המקבלת מערך ממוין של מספרים array ומספר חיובי נוסף diff. אם קיימים שני מספרים שונים במערך שההפרש בינהם שווה ל-diff הפונקציה מחזירה ערך true, אחרת היא מחזירה ערך false.true.false.array או להגדיר (או ליצור) משתנים מורכבים (כגון מערך וכדומה).TreeNode ו-BinarySearchTree יכילו את השדות הבאים (השינוי מהכיתה מסומן בקו תחתון):>>> print(tree.root.right.key_range) → (19, 38)update_key_range() למחלקה TreeNode, שתעדכן את השדה key_range של הצומת לערכיו התקינים לפי ההגדרה שצוינה.update_all_key_range(self) אשר מעדכנת את טווחי המפתחות בכל הצמתים בעץ, תוך שימוש במתודה שמומשה בסעיף א'. הקוד הבא מציע מימוש:update_key_range_2.update_all_key_range, אך ורק על ידי החלפת הקריאה ל-update_key_range בקריאה ל-update_key_range_2.update_all_key_range במקרה הגרוע כתלות בכמות הצמתים (). בנוסף, ציינו האם הקוד נכון, ואם אינו נכון הציעו תיקון (בקצרה).array1 = {1, 3, 6, 7, 8, 10}array2 = {8, 10, 1, 3, 6, 7}array3 = {3, 6, 7, 8, 10, 1}findMinIndex(int[] array) המקבלת מערך לא ריק וממויין בעל איברים יחודיים שעבר הזזה מעגלית ומחזירה את האינדקס של האיבר הקטן ביותר במערך.array1 הפונקציה תחזיר את הערך 0.array2 הפונקציה תחזיר את הערך 2.array3 הפונקציה תחזיר את הערך 5.maxmatch מהכיתה שמחפשת חזרה "קדימה" (התאמה), כעת יש גם הפונקציה maxmatch_back שמחפשת חזרה "אחורה"."abcdeabcde" נדחוס בייצוג הביניים ."abcdeedcba" נדחוס בייצוג הביניים ."aaaalxbxaaaa" נדחוס בייצוג הביניים שהאלגוריתם החדש יייצר."aaaa""abccba"LZW_compress_new בשורות הריקות בהתאם לשינוי המתואר בשאלה. הניחו שמומשה לכם הפונקציה:maxmatch_back(text, p, W=2**12-1, L=2**5-1)maxmatch, מקבלת אותם פרמטרים ומחזירה זוג המקיים כאשר מקסימלי.LZW_compress שראינו בכיתה:שאלות תרגול במבוא למדעי המחשב בנושא סיבוכיות זמן ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא סיבוכיות זמן.