Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
pruefungen:bachelor:aud:loesung-miniklausur-13 [12.01.2016 22:53] Zulleyy3pruefungen:bachelor:aud:loesung-miniklausur-13 [28.03.2016 16:18] Marcel[Inf]
Zeile 7: Zeile 7:
 ==== Aufgabe 1 - Wissensfragen ==== ==== Aufgabe 1 - Wissensfragen ====
  
-**a)** falsch: nur bei assert(x < 4711) wären die Codefragmente äquivalent \\+**a)** falsch: Assertions können selektiv per Flag beim Ausführen ab-/angeschaltet werden. Assertions sind also praktisch nie äquivalent zu anderen Codestücken.\\
  
 **b)** Option 2 und 3 sind richtig \\ **b)** Option 2 und 3 sind richtig \\
Zeile 81: Zeile 81:
  
 **c)** -2 zwischen dem head-Element und 7 einfügen. Die next-Referenz des Sentinel-Elements zeigt dann auf -2, und next von -2 verweist auf 7. **c)** -2 zwischen dem head-Element und 7 einfügen. Die next-Referenz des Sentinel-Elements zeigt dann auf -2, und next von -2 verweist auf 7.
 +
 +**d)** O(n), da das Element, nach dem eingefügt werden soll, immer erst per linearer Suche gesucht werden müsste.
  
 **e)**  **e)** 
Zeile 88: Zeile 90:
    Entry drag = head;    Entry drag = head;
        
-   while(cur !=head){ +   // Fügt das Element immer hinter gleichen Elementen ein 
-     if(cur.element >toAdd.element){ +   // zB. füge 3'' in -1 -> 2 -> 3 -> 3' -> 5 -> ... ein: 
-       drag.next = toAdd; +   //                   -1 -> 2 -> 3 -> 3' -> 3'' -> 5 -> ..
-       toAdd.next = cur+   while(cur.element < toAdd.element && cur != head){
-     }+
      drag = cur;      drag = cur;
      cur = drag.next;      cur = drag.next;
Zeile 113: Zeile 114:
 **axs** **axs**
 <code> <code>
 +// Werte überschreiben
 +// Axiom set(x, val, create) nicht spezifiziert, da es nicht weiter
 +// aufgelöst werden kann, denn set ist ein Konstruktor.
 +set(x, val1, set(y, val2, aa)) = set(x, val1, aa)
 +
 get(x,create) = null get(x,create) = null
 get(x, set(y, e, aa)) = e, wenn x = y;  sonst: get(x, aa) get(x, set(y, e, aa)) = e, wenn x = y;  sonst: get(x, aa)
Zeile 118: Zeile 124:
 delete(x, set(y, e, aa)) = aa, wenn x = y; sonst: set(y, e, delete(x, aa)) delete(x, set(y, e, aa)) = aa, wenn x = y; sonst: set(y, e, delete(x, aa))
 size(create) = 0 size(create) = 0
-size(x, set(x, e, aa) = size(aa), wenn get(x, aa) = null; sonst: 1 + size(aa) +size(set(x, e, aa)) = 1 + size(aa) 
 </code> </code>