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

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
pruefungen:bachelor:aud:loesung-miniklausur-13 [02.12.2015 20:43] tomabrafixpruefungen:bachelor:aud:loesung-miniklausur-13 [09.01.2017 23:50] (aktuell) thejonny
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 82: Zeile 82:
 **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)** 
 +<code java>
 +public void addSorted(Entry toAdd){ //keeps list sorted
 +   Entry cur = head.next;
 +   Entry drag = head;
 +   
 +   // Fügt das Element immer hinter gleichen Elementen ein
 +   // z. B. füge 3'' in -1 -> 2 -> 3 -> 3' -> 5 -> ... ein:
 +   //                   -1 -> 2 -> 3 -> 3' -> 3'' -> 5 -> ...
 +   while(cur.element < toAdd.element && cur != head){
 +     drag = cur;
 +     cur = drag.next;
 +   }
 +   drag.next = toAdd;
 +   toAdd.next = cur;
 +}
 +</code>
 ==== Aufgabe 4 (Abstrakte Datentypen) ==== ==== Aufgabe 4 (Abstrakte Datentypen) ====
  
Zeile 95: 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(x, val2, aa)) = set(x, val1, aa)
 +set(x, val1, set(y, val2, aa)) = set(y, val2, set(x, val1, aa)) wenn x != y
 +    // reihenfolge ist egal bei unterschiedlichen x,y, bei gleichem index wird überschrieben.
 +
 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 100: Zeile 126:
 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), wenn get(x, aa) = null 
 +size(set(x, e, aa)) = size(aa), sont
 </code> </code>