שים לב: לשאלה זו נוסח אחד ב-Java ונוסח אחר ב-C#.
1public static Node<Character> sod1(Node<Character> lst, char ch)
2{
3 if (lst == null)
4 return null;
5 if (lst.getValue() == ch)
6 return lst;
7 return sod1(lst.getNext(), ch);
8}
9
10public static boolean sod2(Node<Character> lst)
11{
12 if (sod1(lst,'a') != null && sod1(lst,'b') != null)
13 return true;
14 return false;
15}עקוב אחר הפעולה sod1 / Sod1 וכתוב מה יוחזר עבור ch='v' וההפניה lst לשרשרת חוליות של תווים:
מהי מטרת הפעולה sod1 / Sod1?
מהי סיבוכיות זמן הריצה של הפעולה sod1 / Sod1? נמק.
מה מטרת הפעולה sod2 / Sod2?
כתוב פעולה בוליאנית המקבלת הפניה לשרשרת חוליות של תווים ומחזירה true אם מופיעות בה שתי חוליות סמוכות שערכיהן 'a' ו-'b' (כלומר הרצף "ab" או "ba"). אחרת - הפעולה מחזירה false.
עליך להשתמש בפעולה sod1 / Sod1.
הנח שכל התווים שונים זה מזה.
שים לב: לשאלה זו נוסח אחד ב-Java ונוסח אחר ב-C#.
1public static Node<Character> sod1(Node<Character> lst, char ch)
2{
3 if (lst == null)
4 return null;
5 if (lst.getValue() == ch)
6 return lst;
7 return sod1(lst.getNext(), ch);
8}
9
10public static boolean sod2(Node<Character> lst)
11{
12 if (sod1(lst,'a') != null && sod1(lst,'b') != null)
13 return true;
14 return false;
15}עקוב אחר הפעולה sod1 / Sod1 וכתוב מה יוחזר עבור ch='v' וההפניה lst לשרשרת חוליות של תווים:
מהי מטרת הפעולה sod1 / Sod1?
מהי סיבוכיות זמן הריצה של הפעולה sod1 / Sod1? נמק.
מה מטרת הפעולה sod2 / Sod2?
כתוב פעולה בוליאנית המקבלת הפניה לשרשרת חוליות של תווים ומחזירה true אם מופיעות בה שתי חוליות סמוכות שערכיהן 'a' ו-'b' (כלומר הרצף "ab" או "ba"). אחרת - הפעולה מחזירה false.
עליך להשתמש בפעולה sod1 / Sod1.
הנח שכל התווים שונים זה מזה.