Generizität
From Alda
Generizität
Definition
Algorihmen und Datenstrukturen so zu entwerfen und implementieren, dass sie möglichst vielvältig verwendbar sind.
Gemeint sind :
- verschiedene Anwendungen
- mit vielen Kombinationsmöglichkeiten
- als wiederverwendbare Bibliothek
- Code austauschen in Bibliotheken
--> Dies soll ohne Neuimplemenation geschehen
- Beispiel : Kopieren eines Containers
- def copyArray(a):
- r =[]
- for k in a
- r.append(k)
- def copyArray(a):
- class Node :
- def__init__(self,data,next)
- self.data = data
- self.next = next
- def__init__(self,data,next)
- class Node :
- return k
- def copyArrayToList(a) :
- if len(a) == 0 : return None
- first = last = Node (a[0], None)
- for k in a[1:] :
- last.next = Node(k, None)
- last = last.next
- return first
- def copyArrayToList(a) :
- def copyListToArray(l):
- r = []
- while l is not in None :
- r.append(l.data)
- l = l.next
- return r
- def copyListToArray(l):
Beobachtung :
Für N Datenstrukuren ist der Implementaionsaufwand <math>O({N^2})</math>.
Alle Funktionen machen das gleiche mit uninteressanten Unterschied
Verbesserung durch Verallgemeinerung zweier Aspekt :
- Navigation durch die Quelldaten
- Aufbauen der Zieldatenstruktur
Der Rest kommt nach