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.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pruefungen:bachelor:aud:loesungss19 [21.06.2020 10:58] kat04pruefungen:bachelor:aud:loesungss19 [25.06.2020 15:48] (aktuell) kat04
Zeile 238: Zeile 238:
  }  }
  
-+ }//visitedAbfrage schließt 
-+ }//while schießt 
-  +             if(visited.size()!=allNodes.size()){ 
- }+                  return false; // abfrage ist wichtig, weil es kann sein, dass zwei Knoten gegenseitig auf sich zeigen, damit haben sie beide Vor und Nachfolger aber die anderen Knoten werden nicht erreicht  
 + }  
 + }//forschleife schließt
  return true;  return true;
  }  }
Zeile 267: 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<E> nach = succs(akt);  List<E> nach = succs(akt);
  if(nach.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 : nach) {  for(E e : nach) {
Zeile 314: Zeile 317:
 <code=java> <code=java>
 sCH(Create, u, accu) = ... sCH(Create, u, accu) = ...
-... accu falls containsAll (accu, u)+... accu falls containsAll (setUnion(accu), u)
 ... create sonst ... create sonst
  
Zeile 326: Zeile 329:
 String getVerticalPrefix(int r, int c) { String getVerticalPrefix(int r, int c) {
   
- if(r<0 || g[r][c]=='#' || r> g.length || c > g[r].length) {+ if(r<0 || g[r][c]=='#' || r>g.length || c >g[r].length) {
  return "";  return "";
  }else {  }else {
Zeile 356: 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>g[r].length) { // ende der Zeile  } else if(c>g[r].length) { // ende der Zeile