Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Python C3-Algorithmus (http://www.informatikerboard.de/board/thread.php?threadid=3126)


Geschrieben von Dr.Java am 07.07.2016 um 12:49:

  Python C3-Algorithmus

Hi. Diesmal habe ich weniger ein Problem mit dem Programmieren ,als mit einer eher theoretischen Frage. Bei der Aufgabe ist nämlich eine Klassenhierarchie gegeben
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
class A:
pass

class B:
pass

class C:
pass

class D(A,B):
pass

class E(B,C):
pass

class F(D,E):
pass

und man soll mit einem C3-Algorithmus die Method Resolution Order der Klasse F finden,inklusive aller Zwischenschritte .Mein Problem ist das ich nicht wirklich weiß wie man das am besten anstellt, ich habe leider nur dürftig Informationen über den Algorithmus erhalten. Aber ich habe mal folgendes probiert.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
class A:
L(A)=[A]+merge(L(O),[O])=[A]+merge([O],[O]))=[A]+[O]=[A,O]

class B:
L(B)=[B]+merge(L(O),[O])=[B]+merge([O],[O]))=[B]+[O]=[B,O]

class C:
L(C)=[C]+merge(L(O),[O])=[C]+merge([O],[O]))=[A]+[O]=[A,O]

class D(A,B):
L(D)=[D]+merge(L(A),L(B),[A,B])=[D]+merge([A,O],[B,O],[A,B])=?

class E(B,C):
L(E)=[E]+merge(L(B),L(C),[B,C])=[E]+merge([B,O],[C,O],[B,C])=?

class F(D,E):
pass

Die Schritte hab ich anhand eines vorgegeben Beispiels rekonstruiert.
Weiter würde ich jetzt nicht kommen- Stimmen die Schritte denn soweit und wie würde ich dann weiter machen?

Danke und lg


Forensoftware: Burning Board, entwickelt von WoltLab GmbH