Darstellen habe ich eine Liste wie folgt:einen Graphen als zwei Listen in Haskell
[(1,1.0,0.0),(2,2.0,0.0),(3,2.0,1.0),(4,3.0,0.0),(5,3.0,1.0),(14,3.0,2.0),(6,4.0,0.0),(7,4.0,1.0),(13,4.0,2.0),(8,5.0,0.0),(9,5.0,1.0),(10,6.0,0.0),(11,6.0,1.0),(12,7.0,0.0)]
wobei das erste Element eine Knoten-ID ist, eine zweite ist x - und die dritte ein y -Koordinate.
Eine zweite Liste stellt
[(1,[2,3]),(2,[4,5]),(3,[14]),(4,[6]),(5,[7]),(14,[6,7,13]),(6,[8]),(7,[9]),(13,[]),(8,[10]),(9,[11]),(10,[12]),(11,[12]),(12,[13])]`
die erste Element die ID dieses Knotens ist, und die zugehörige Liste enthält Nachfolger jedes Knotens.
Ich möchte, um eine Funktion schreiben, die eine Knoten-ID übernimmt, gibt die entsprechenden x, y sowohl den Knoten selbst und seine Nachfolger. Zum Beispiel: Der Knoten 1 Ausbeute
[(1.0,0.0,2.0,0.0), (1.0,0.0,2.0,1.0)]
weil der Knoten 1 Nachfolger hat 2 (2.0,0.0) und 3 (2.0,1.0)
EDIT:
ich schrieb Funktionen:
pairs [] = []
pairs ((nodeId,nodesucc):xs) = map (nodeId,) nodesucc : pairs xs
pairsConcat = concat $ pairs $ edg graph2
so jetzt zweite Liste wie folgt aussieht:
[(1,2),(1,3),(2,4),(2,5),(3,14),(4,6),(5,7),(14,6),(14,7),(14,13),(6,8),(7,9),(8,10),(9,11),(10,12),(11,12),(12,13)]
Wie Tupel mit 4 Elementen zu erstellen?
was haben Sie versucht. – levi
Ich habe keine Ahnung, wie es geht – aabbcc
Warum willst du es tun? – Gurkenglas