Sie befinden sich hier: Termine » 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 gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pruefungen:bachelor:aud:loesungss19 [21.06.2020 12:58]
kat04
pruefungen:bachelor:aud:loesungss19 [25.06.2020 17: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