28.02.2014 Aufrufe

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

Bahnplanungsframework für ein autonomes Fahrzeug - oops ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

70 Suchalgorithmen<br />

33 i f ( l e f t == n u l l ) r e t u r n r i g h t ;<br />

i f ( r i g h t == n u l l ) r e t u r n l e f t ;<br />

35<br />

i f ( l e f t . CompareTo ( r i g h t ) < 0)<br />

37 {<br />

SkewNode swap = l e f t . L e f t ;<br />

39 l e f t . L e f t = merge ( l e f t . Right , r i g h t ) ;<br />

l e f t . R i g h t = swap ;<br />

41 r e t u r n l e f t ;<br />

}<br />

43 e l s e<br />

{<br />

45 SkewNode swap = r i g h t . R i g h t ;<br />

r i g h t . R i g h t = merge ( r i g h t . Left , l e f t ) ;<br />

47 r i g h t . L e f t = swap ;<br />

r e t u r n r i g h t ;<br />

49 }<br />

}<br />

51<br />

p u b l i c c l a s s SkewNode where T : IComparable<br />

53 {<br />

p u b l i c T Data { s e t ; g e t ; }<br />

55 p u b l i c SkewNode L e f t { s e t ; g e t ; }<br />

p u b l i c SkewNode R i g h t { s e t ; g e t ; }<br />

57<br />

p u b l i c SkewNode ( T d a t a )<br />

59 {<br />

t h i s . Data = d a t a ;<br />

61 }<br />

63 p u b l i c i n t CompareTo ( SkewNode o t h e r )<br />

{<br />

65 r e t u r n Data . CompareTo ( o t h e r . Data ) ;<br />

}<br />

67 }<br />

}<br />

Algorithmus (6.2): Skew Heap im C# Stil.<br />

Aus den beiden Bäumen A und B wird die Wurzel mit dem geringsten Wert als neue Wurzel ausgewählt,<br />

es sei in diesem Fall der Baum A. Der linke und rechte Nachfolger A.l und A.r stellen ebenfalls<br />

je <strong>ein</strong>en Baum dar, von denen <strong>ein</strong>er so bleibt wie er ist und der andere mit Baum B rekursiv über<br />

die gleiche Methode wieder gemischt wird. Zuletzt werden die neu entstandenen Bäume A.l und A.r<br />

noch vertauscht. In der Abbildung (Abb. 6.15) ist dieses Verhalten der Merge-Funktion skizziert.<br />

Dabei sind vertikal <strong>ein</strong>zelne Schritte von <strong>ein</strong>ander getrennt und horizontal die Rekursionstiefe.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!