1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
|
#include <iostream>
using namespace std;
int v0;
int s0;
int lcs(int* a0, int* a1) {
cout << "a0 = " << *a0 << " a1 = " << *a1 << " v0 = " << v0 << endl;
if (*a0 == 0 || *a1 == 0) //lcs 2. Absatz
return 0;
if (*a0 != *a1) { //lcs 3. Absatz 1. Zeile
//case 2
a0++; //Zeiger erhöhen
lcs(a0, a1);
s0 = v0;
a0--;
a1++;
lcs(a0, a1);
a1--;
if (v0 == s0) return 0;
v0 = s0;
}
else { //lcs 3. Absatz ab Zeile 2
a0++;
a1++;
lcs(a0, a1);
v0++;
a0--;
a1--;
cout << "increment v0: a0 = " << *a0 << " a1 = " << *a1 << " v0 = " << v0 << endl;
}
}
int main() {
int a0[] = {2, 1, 4, 0};
int a1[] = {1, 4, 0};
v0 = 0;
lcs(a0, a1);
} |