Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen, bei Fragen bitte:
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:loesungws18 [17.06.2019 20:00] – gabriel2029 | pruefungen:bachelor:aud:loesungws18 [14.07.2019 13:15] – Dbadtf_385 | ||
---|---|---|---|
Zeile 119: | Zeile 119: | ||
=== a) === | === a) === | ||
^ Fach ^ k // | ^ Fach ^ k // | ||
- | | 0 | E => K | + | | 0 | E => U |
| 1 | | 1 | ||
| 2 |? => | | | 2 |? => | | ||
Zeile 156: | Zeile 156: | ||
private long helperNums(T v, long num) { | private long helperNums(T v, long num) { | ||
// Füge Preorder-Knoten hinzu | // Füge Preorder-Knoten hinzu | ||
- | nums.add(v, num); | + | nums.put(v, num); |
| | ||
// Nächster Knoten bekommt eine um eins höhere Nummerierung | // Nächster Knoten bekommt eine um eins höhere Nummerierung | ||
Zeile 163: | Zeile 163: | ||
// Schaue, ob in sptree schon eine Adjazenzliste angelegt wurde | // Schaue, ob in sptree schon eine Adjazenzliste angelegt wurde | ||
// (eigentlich ist das ein Set, das ist aber nicht relevent) | // (eigentlich ist das ein Set, das ist aber nicht relevent) | ||
- | if (!sptree.contains(v)) sptree.put(v, | + | if (!sptree.containsKey(v)){ |
- | | + | sptree.put(v, |
+ | | ||
// Betrachte alle Nachbarn im Graphen | // Betrachte alle Nachbarn im Graphen | ||
for (T w : graph.get(v)) { | for (T w : graph.get(v)) { | ||
// Überprüfe, | // Überprüfe, | ||
- | if (!nums.contains(w) { | + | if (!nums.containsKey(w) { |
sptree.get(v).add(w); | sptree.get(v).add(w); | ||
- | num = helperNums(v, num); // Führe rekursiv die dfs-Nummerierung aus | + | num = helperNums(w, num); // Führe rekursiv die dfs-Nummerierung aus |
} | } | ||
} | } | ||
Zeile 193: | Zeile 194: | ||
| | ||
for (T w : graph.get(v)) { | for (T w : graph.get(v)) { | ||
- | low = Math.min(low, | + | low = Math.min(low, |
} | } | ||
| | ||
Zeile 241: | Zeile 242: | ||
if (charPos < 5) { | if (charPos < 5) { | ||
bs = bp.getBuckets(9); | bs = bp.getBuckets(9); | ||
- | | + | Iterator< |
- | for (Iterator< | + | while (it.hasNext()) { |
String nextString = it.next(); | String nextString = it.next(); | ||
char c = nextString.charAt(charPos); | char c = nextString.charAt(charPos); | ||
Zeile 248: | Zeile 249: | ||
// Nur Elemente, die an dieser Stelle einen Char != 0 haben, | // Nur Elemente, die an dieser Stelle einen Char != 0 haben, | ||
// in andere Liste schieben | // in andere Liste schieben | ||
- | if (c >= '1' && c <= '9') { | + | if (c != '0') { |
+ | bs.get(Character.getNumericValue(c)).add(nextString); | ||
it.remove(); | it.remove(); | ||
- | bs.get(c - ' | ||
} | } | ||
} | } | ||
Zeile 262: | Zeile 263: | ||
sort(bucket, | sort(bucket, | ||
| | ||
- | /* Zum Verständis: | + | /* Zum Verständnis: |
* Dadurch, dass die Strings in erster Priorität nach dem Char | * Dadurch, dass die Strings in erster Priorität nach dem Char | ||
* an Position c sortiert sind, wird die Liste korrekt sortiert: | * an Position c sortiert sind, wird die Liste korrekt sortiert: |