Ich denke, die übliche Wald erzeugung genügt nicht, weil jeder Weg gegangen werden muss. Das Problem, dass Pred bei der letzten, vorletzten Rekursion wieder hergestellt werden muss
Ich denke, das lohnt sich eben einen stapel zu verwenden, das letzte pred drauf zu tun und dann wieder als false zu markieren
So, jetzt fülle ich erst Mal die Adjazenzmatrix. Ich tue die Abstände rein.
So, ich schreibe jetzt erst Mal Städte und Abstände auf, in das Array der Adjazenzmatrix
Code: Alles auswählen
// ich habe jetzt hier eine neue funktion
void init_adjazenzmatrix_city (int a [N][N]) {
/*
*
*
}
Da schreibe ich jetzt im Kommentar, die Abstände rein.
Code: Alles auswählen
void init_adjazenzmatrix_city (int a [N][N]) {
/* Holzmarkt, 0
* Judengasse, 1
* Neckarbruecke, 2
* Jakobuskirche, 3
* Kelternplatz 4
*/
}
Code: Alles auswählen
void init_adjazenzmatrix_city (int a [N][N]) {
/* Holzmarkt, 0
* Judengasse, 1
* Neckarbruecke, 2
* Jakobuskirche, 3
* Kelternplatz, 4
*/
/*
*
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)
(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)
(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)
(Jakobuskirche, Kelternplatz, 220m)
*/
#define HOLZMARKT 0
#define JUDENGASSE 1
#define NECKARBRUECKE 2
#define JAKOBUSKIRCHE 3
#define KELTERNPLATZ 4
a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;
a [HOLZMARKT][KELTERNPLATZ] = 600;
}
Es sind übrigens, nicht
Code: Alles auswählen
5^5
Code: Alles auswählen
5^2
Weil - sie haben ja -
Code: Alles auswählen
a, b, c, d, e, f, g
Code: Alles auswählen
5*5
Code: Alles auswählen
4*3*2*1 = 12*2 = 24
Code: Alles auswählen
// so jetzt habe ich das so gemacht, jetzt mache ich noch bei gleichen 0, rein
void init_adjazenzmatrix_city (int a [N][N]) {
/* Holzmarkt, 0
* Judengasse, 1
* Neckarbruecke, 2
* Jakobuskirche, 3
* Kelternplatz, 4
*/
/*
*
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)
(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)
(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)
(Jakobuskirche, Kelternplatz, 220m)
*/
#define HOLZMARKT 0
#define JUDENGASSE 1
#define NECKARBRUECKE 2
#define JAKOBUSKIRCHE 3
#define KELTERNPLATZ 4
a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;
a [JAKOBUSKIRCHE][HOLZMARKT] = 350;
a [HOLZMARKT][KELTERNPLATZ] = 600;
a [KELTERNPLATZ][HOLZMARKT] = 600;
a [JUDENGASSE][NECKARBRUECKE] = 160;
a [NECKARBRUECKE][JUDENGASSE] = 160;
a [JUDENGASSE][JAKOBUSKIRCHE] = 160;
a [JAKOBUSKIRCHE][JUDENGASSE] = 160;
a [JUDENGASSE][KELTERNPLATZ] = 350;
a [KELTERNPLATZ][JUDENGASSE] = 350;
a [NECKARBRUECKE][JAKOBUSKIRCHE] = 800;
a [JAKOBUSKIRCHE][NECKARBRUECKE] = 800;
a [NECKARBRUECKE][KELTERNPLATZ] = 950;
a [KELTERNPLATZ][NECKARBRUECKE] = 950;
a [JAKOBUSKIRCHE][KELTERNPLATZ] = 220;
a [KELTERNPLATZ][JAKOBUSKIRCHE] = 220;
}
Code: Alles auswählen
void init_adjazenzmatrix_city (int a [N][N]) {
/* Holzmarkt, 0
* Judengasse, 1
* Neckarbruecke, 2
* Jakobuskirche, 3
* Kelternplatz, 4
*/
/*
*
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)
(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)
(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)
(Jakobuskirche, Kelternplatz, 220m)
*/
#define HOLZMARKT 0
#define JUDENGASSE 1
#define NECKARBRUECKE 2
#define JAKOBUSKIRCHE 3
#define KELTERNPLATZ 4
a [HOLZMARKT][HOLZMARKT] = 0;
a [JUDENGASSE][JUDENGASSE] = 0;
a [JAKOBUSKIRCHE][JAKOBUSKIRCHE] = 0;
a [JUDENGASSE][JUDENGASSE] = 0;
a [NECKARBRUECKE][NECKARBRUECKE] = 0;
a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;
a [JAKOBUSKIRCHE][HOLZMARKT] = 350;
a [HOLZMARKT][KELTERNPLATZ] = 600;
a [KELTERNPLATZ][HOLZMARKT] = 600;
a [JUDENGASSE][NECKARBRUECKE] = 160;
a [NECKARBRUECKE][JUDENGASSE] = 160;
a [JUDENGASSE][JAKOBUSKIRCHE] = 160;
a [JAKOBUSKIRCHE][JUDENGASSE] = 160;
a [JUDENGASSE][KELTERNPLATZ] = 350;
a [KELTERNPLATZ][JUDENGASSE] = 350;
a [NECKARBRUECKE][JAKOBUSKIRCHE] = 800;
a [JAKOBUSKIRCHE][NECKARBRUECKE] = 800;
a [NECKARBRUECKE][KELTERNPLATZ] = 950;
a [KELTERNPLATZ][NECKARBRUECKE] = 950;
a [JAKOBUSKIRCHE][KELTERNPLATZ] = 220;
a [KELTERNPLATZ][JAKOBUSKIRCHE] = 220;
}
Und jetzt kommt das Rekursive
Code: Alles auswählen
int globalsum = 0;
void tue_city (int a [N][N], int i, int sum) {
int j;
if (i < N) {
for (j = 0; j < N; j++) {
if (is_on_stack ()) {
sum = sum + a [i][j];
push (i);
tue_city (a, j, sum);
pop ();
}
}
}
else {
if ((globalsum == 0) || (sum < globalsum))
globalsum = sum;
return 0;
}
}
Code: Alles auswählen
int globalsum = 0;
void tue_city (int a [N][N], int i, int sum) {
int j;
if (i < N) {
for (j = 0; j < N; j++) {
if (is_on_stack ()) {
sum = sum + a [i][j];
push (i);
tue_city (a, j, sum);
pop ();
}
}
}
else {
if ((globalsum == 0) || (sum < globalsum))
globalsum = sum;
return 0;
}
}
Code: Alles auswählen
// ich habe das Problem jetzt so gelöst
int globalsum = 0;
void tue_city (int a [N][N], int i, int sum) {
int j;
if (i < N) {
for (j = 0; j < N; j++) {
if (is_on_stack ()) {
sum = sum + a [i][j];
push (i);
tue_city (a, j, sum);
pop ();
}
}
}
else {
if ((globalsum == 0) || (sum < globalsum))
globalsum = sum;
return 0;
}
}
Code: Alles auswählen
push (int v) {
stack_ptr--;
stack [stack_ptr] = v;
}
int pop () {
int v = stack [stack_ptr];
stack_ptr++;
return stack_ptr;
}
int is_on_stack (int v) {
for (i = 1024; i >= stack_ptr; i--)
if (stack [i] == v)
return 1;
return 0;
}
void tue_city (int a [N][N], int i, int sum) {
int j;
push (i);
if (i < N) {
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, j, sum);
pop ();
}
}
}
else {
if ((globalsum == 0) || (sum < globalsum))
globalsum = sum;
return 0;
}
}
Code: Alles auswählen
void tue_city (int a [N][N], int i, int sum) {
int j;
push (i);
if (i < N) {
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, j, sum);
pop ();
}
}
}
else {
if ((globalsum == 0) || (sum < globalsum))
globalsum = sum;
return 0;
}
}
Code: Alles auswählen
int globalsum = 0;
int stack [1024];
int stack_ptr = 1024;
void push (int v) {
stack_ptr--;
stack [stack_ptr] = v;
}
int pop () {
int v = stack [stack_ptr];
stack_ptr++;
return v;
}
int is_on_stack (int v) {
int i;
for (i = 1023; i >= stack_ptr; i--)
if (stack [i] == v)
return 1;
return 0;
}
char *tue_name [] = {"HOLZMARKT", "JUDENGASSE", "NECKARBRUECKE", "JAKOBUSKIRCHE", "KELTERNPLATZ"};
void print_stack () {
int i;
for (i = stack_ptr; i < 1024; i++)
printf ("%s, ", tue_name[stack [i]]);
printf ("\n");
}
void tue_city (int a [N][N], int i, int sum) {
int j;
push (i);
if (i < N) {
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, j, sum);
}
}
pop ();
}
else {
if ((globalsum == 0) || (sum < globalsum)) {
globalsum = sum;
print_stack ();
}
}
}
Code: Alles auswählen
// oK - da war ein gravierender Fehler drin, so ist es wahrscheinlich besser
void tue_city (int a [N][N], int i, int sum) {
int j;
push (i);
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, a [i][j], sum);
}
pop ();
}
if ((globalsum == 0) || (sum < globalsum)) {
globalsum = sum;
print_stack ();
}
}
Nein, habe ich gerade falsch gesehen, war doch kein Fehler
Code: Alles auswählen
void tue_city (int a [N][N], int i, int sum) {
int j;
push (i);
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, j, sum);
}
pop ();
}
if ((globalsum == 0) || (sum < globalsum)) {
globalsum = sum;
print_stack ();
}
Code: Alles auswählen
// so ist besser
void tue_city (int a [N][N], int i, int sum) {
int j;
int flag = 0;
push (i);
for (j = 0; j < N; j++) {
if (!is_on_stack (j)) {
sum = sum + a [i][j];
tue_city (a, j, sum);
}
else
flag = 1;
}
print_stack ();
printf ("%i\n", sum);
pop ();
}
Code: Alles auswählen
david@laptop-peaq:~$ ./a.out
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
1480
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
2430
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
2430
NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
2210
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2370
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2590
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2590
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
1640
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2720
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2940
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2940
KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2140
JUDENGASSE, HOLZMARKT,
970
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1140
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1490
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1490
JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1270
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2070
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2290
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2290
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
1940
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3020
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3240
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3240
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3080
NECKARBRUECKE, HOLZMARKT,
2510
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2220
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2570
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2570
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
1620
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
2420
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
3370
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
3370
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
3020
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
2640
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
3590
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
3590
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
3430
JAKOBUSKIRCHE, HOLZMARKT,
2130
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
2860
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
3020
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
3020
JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
2220
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3170
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3970
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3970
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3810
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
3390
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
4190
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
4190
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
4030
KELTERNPLATZ, HOLZMARKT,
3070
HOLZMARKT,
1550
david@laptop-peaq:~$
Code: Alles auswählen
# so, da ist noch ein Fehler drin
david@laptop-peaq:~$ ./a.out
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
2430
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2590
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2940
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1490
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2290
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3240
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2570
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
3370
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
3590
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
3020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3970
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
4190
david@laptop-peaq:~$
Na, also, das hat er ausgegeben
Code: Alles auswählen
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE,
980
Code: Alles auswählen
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT,
2430
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT,
2590
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT,
2940
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT,
1490
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT,
2290
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT,
3240
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT,
2570
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT,
3370
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT,
3590
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT,
3020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT,
3970
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT,
4190
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, JUDENGASSE,
1620
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JUDENGASSE,
2570
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE,
2700
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE,
2920
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE,
3300
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE,
3520
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, JUDENGASSE,
1330
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JUDENGASSE,
1930
KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE,
2510
HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE,
2730
JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE,
3460
HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE,
3680
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE,
2220
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE,
2820
KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE,
2670
HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE,
3620
NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE,
2890
HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE,
3840
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE,
2670
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE,
3020
JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE,
3170
HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE,
3970
NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE,
3390
HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE,
4190
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE,
980
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, NECKARBRUECKE,
1330
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE,
1460
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE,
1680
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE,
2060
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE,
2280
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, NECKARBRUECKE,
1330
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, NECKARBRUECKE,
1930
KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE,
1870
HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE,
2090
JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE,
2220
HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE,
2440
KELTERNPLATZ, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE,
2260
JUDENGASSE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE,
2860
KELTERNPLATZ, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE,
2670
HOLZMARKT, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE,
3020
JUDENGASSE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE,
2890
HOLZMARKT, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE,
3240
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE,
3270
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE,
3620
JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE,
3810
HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE,
3970
JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE,
4030
HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE,
4190
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE,
1760
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE,
2110
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE,
1460
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE,
2410
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE,
2060
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE,
3010
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE,
2060
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE,
2660
KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE,
1870
HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE,
2820
NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE,
2220
HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE,
3170
KELTERNPLATZ, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE,
2260
JUDENGASSE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE,
2860
KELTERNPLATZ, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE,
2670
HOLZMARKT, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE,
3020
JUDENGASSE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE,
3620
HOLZMARKT, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE,
3970
NECKARBRUECKE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE,
2590
JUDENGASSE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE,
2890
NECKARBRUECKE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE,
3080
HOLZMARKT, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE,
3240
JUDENGASSE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE,
4030
HOLZMARKT, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE,
4190
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ,
1860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ,
2020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ,
1520
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ,
2320
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ,
1870
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ,
2670
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ,
2350
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ,
2700
JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ,
2060
HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ,
2860
NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ,
2220
HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ,
3020
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ,
2660
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ,
3010
JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ,
3010
HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ,
3170
JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ,
3810
HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ,
3970
NECKARBRUECKE, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ,
2930
JUDENGASSE, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ,
3230
NECKARBRUECKE, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ,
3230
HOLZMARKT, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ,
3390
JUDENGASSE, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ,
4030
HOLZMARKT, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ,
4190