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
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
pruefungen:bachelor:aud:loesung-miniklausur-13 [02.12.2015 20:43] tomabrafixpruefungen:bachelor:aud:loesung-miniklausur-13 [09.01.2017 23:48] 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) 
 </code> </code>