Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Lösungsversuch
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige ÜberarbeitungNächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesungss14 [26.03.2019 11:07] – SpeedyGonzalez | pruefungen:bachelor:aud:loesungss14 [28.05.2019 14:50] – Dbadtf_385 | ||
---|---|---|---|
Zeile 111: | Zeile 111: | ||
https:// | https:// | ||
+ | <code java> | ||
static boolean exists(boolean[][] brd, int r, int c) { | static boolean exists(boolean[][] brd, int r, int c) { | ||
if(brd[r] == null || brd[r].length < 1) { | if(brd[r] == null || brd[r].length < 1) { | ||
Zeile 136: | Zeile 136: | ||
} | } | ||
+ | //Achtung die folgende Implementierung enthaelt fehler! Lieber die Implementierung aus | ||
+ | //<< | ||
static boolean solve(boolean[][] brd, int[][] sol, int tf, int r, int c, int n) { | static boolean solve(boolean[][] brd, int[][] sol, int tf, int r, int c, int n) { | ||
int[][] jumps = { { r + 2, c - 1 }, { r + 1, c - 2 }, { r - 1, c - 2 }, { r - 2, c - 1 }, { r - 2, c + 1 }, | int[][] jumps = { { r + 2, c - 1 }, { r + 1, c - 2 }, { r - 1, c - 2 }, { r - 2, c - 1 }, { r - 2, c + 1 }, | ||
Zeile 157: | Zeile 159: | ||
return false; | return false; | ||
} | } | ||
+ | </ | ||
[[pruefungen: | [[pruefungen: | ||
Zeile 208: | Zeile 211: | ||
if (exists(brd, | if (exists(brd, | ||
sol[r][c] = n; | sol[r][c] = n; | ||
- | + | if (solve(brd, sol, tf, jump[0], jump[1], n + 1)) { | |
- | boolean res = solve(brd, sol, tf, jump[0], jump[1], n + 1); | + | |
- | if (res) { | + | |
return true; | return true; | ||
} | } | ||
- | |||
sol[r][c] = 0; | sol[r][c] = 0; | ||
} | } | ||
- | |||
} | } | ||
- | |||
return false; | return false; | ||
} | } | ||
Zeile 233: | Zeile 231: | ||
\\ | \\ | ||
c) | c) | ||
+ | <code java> | ||
+ | // | ||
void reheap(W[] w, Comparator< | void reheap(W[] w, Comparator< | ||
int leftId = 2 * i + 1; | int leftId = 2 * i + 1; | ||
Zeile 250: | Zeile 250: | ||
} | } | ||
} | } | ||
+ | </ | ||
\\ | \\ | ||
d) | d) | ||
Zeile 275: | Zeile 276: | ||
HashMap< | HashMap< | ||
for(char c : s.toCharArray()) { | for(char c : s.toCharArray()) { | ||
- | if(map.get(c) | + | Node n = map.get(c); |
- | map.put(c, new Node(c, 1)); | + | if(n != null) { |
+ | //variable frequenz updaten | ||
+ | n.f++; | ||
} else { | } else { | ||
- | int value = map.get(c).f += 1; | + | //neuer node in die map |
- | map.put(c, | + | map.put(c, |
} | } | ||
} | } |