Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Lösungsversuch SS 19 (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:bachelor:aud:loesungss19 [19.06.2020 11:47] – kat04 | pruefungen:bachelor:aud:loesungss19 [25.06.2020 15:48] (aktuell) – kat04 | ||
---|---|---|---|
Zeile 37: | Zeile 37: | ||
- Falsch, man muss ja trotzdem die Knoten mit in Betracht ziehen | - Falsch, man muss ja trotzdem die Knoten mit in Betracht ziehen | ||
- Falsch, Dijkstra bestimmt nicht den minimalen Spannbaum, sondern die küzesten Wege | - Falsch, Dijkstra bestimmt nicht den minimalen Spannbaum, sondern die küzesten Wege | ||
+ | |||
+ | === g) === | ||
+ | - Richtig, Skript 15, Seite 15 | ||
+ | - Richtig | ||
+ | - Falsch, immer O(n²) | ||
+ | - Falsch, Definition für zerteilen / divisiv | ||
==== | ==== | ||
Zeile 115: | Zeile 121: | ||
==== | ==== | ||
- | === a,b,c im unteren Code === | + | === a,b,c,d im unteren Code === |
< | < | ||
Zeile 232: | Zeile 238: | ||
} | } | ||
- | } | + | }// |
- | } | + | }//while schießt |
- | if(visited.size()< allNodes.size()) { | + | |
- | // theoretisch müsste diese Abfrage reichen | + | |
- | //wenn ich nicht von meinem aktuellen knoten alle erreichen kann dann falsch | + | } |
- | return false; | + | }// |
- | } | + | |
- | } | + | |
return true; | return true; | ||
} | } | ||
Zeile 265: | Zeile 269: | ||
stack.add(node); | stack.add(node); | ||
while(!stack.isEmpty()) { | while(!stack.isEmpty()) { | ||
- | E akt = stack.pop(); | + | E akt = stack.peek(); //nicht rauslöschen!!! |
- | List< | + | List< |
- | if(vor.isEmpty()) { | + | if(nach.isEmpty()) { |
//keine nachfolger = Blattknoten -> zu Euler hinzu | //keine nachfolger = Blattknoten -> zu Euler hinzu | ||
- | euler.add(akt); | + | euler.addFirst(akt); //vorne anfügen |
+ | stack.pop(); | ||
}else { | }else { | ||
- | for(E e : vor) { | + | for(E e : nach) { |
stack.push(e); | stack.push(e); | ||
} | } | ||
Zeile 294: | Zeile 299: | ||
ContainsAll(s1, | ContainsAll(s1, | ||
containsAll(Empty, | containsAll(Empty, | ||
- | containsAll(s1, | + | containsAll(s1, |
</ | </ | ||
Zeile 312: | Zeile 317: | ||
< | < | ||
sCH(Create, u, accu) = ... | sCH(Create, u, accu) = ... | ||
- | ... accu falls containsAll (accu, u) | + | ... accu falls containsAll |
... create sonst | ... create sonst | ||
Zeile 324: | Zeile 329: | ||
String getVerticalPrefix(int r, int c) { | String getVerticalPrefix(int r, int c) { | ||
- | if(r<0 || g[r][c]=='#' | + | if(r<0 || g[r][c]=='#' |
return ""; | return ""; | ||
}else { | }else { | ||
Zeile 354: | Zeile 359: | ||
// traverse g row by row and left to right | // traverse g row by row and left to right | ||
if(wsH.isEmpty()) { | if(wsH.isEmpty()) { | ||
- | // wenn ich alle horizontele Wörter platzieren konnte bin ich fertig | ||
- | // die vertikalen werden unten schon geprueft | ||
return true; | return true; | ||
} else if(c> | } else if(c> |