Generizität

From Alda
Revision as of 22:18, 12 June 2008 by 87.144.238.237 (talk) (New page: == Generizität == '''Definition''' Algorihmen und Datenstrukturen so zu entwerfen und implementieren, dass sie möglichst vielvältig verwendbar sind. Gem...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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


  1. Beispiel : Kopieren eines Containers
def copyArray(a):
r =[]
for k in a
r.append(k)


class Node :
def__init__(self,data,next)
self.data = data
self.next = next
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 copyListToArray(l):
r = []
while l is not in None :
r.append(l.data)
l = l.next
return r


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