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 ÜberarbeitungLetzte ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesungss19 [21.06.2020 09:54] – kat04 | pruefungen:bachelor:aud:loesungss19 [25.06.2020 08:49] – kat04 | ||
---|---|---|---|
Zeile 238: | 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 271: | 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); |
}else { | }else { | ||
- | for(E e : vor) { | + | for(E e : nach) { |
stack.push(e); | stack.push(e); | ||
} | } | ||
Zeile 300: | Zeile 298: | ||
ContainsAll(s1, | ContainsAll(s1, | ||
containsAll(Empty, | containsAll(Empty, | ||
- | containsAll(s1, | + | containsAll(s1, |
</ | </ | ||
Zeile 318: | Zeile 316: | ||
< | < | ||
sCH(Create, u, accu) = ... | sCH(Create, u, accu) = ... | ||
- | ... accu falls containsAll (accu, u) | + | ... accu falls containsAll |
... create sonst | ... create sonst | ||
Zeile 330: | Zeile 328: | ||
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 360: | Zeile 358: | ||
// 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> |