Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.644 Beiträge
Delphi 12 Athens
|
Re: Probleme mit Listen/ verkettet Listen
25. Okt 2007, 15:45
So, eine ungetestete Version, versuch halt mal:
Delphi-Quellcode:
While Durchlauf Do
Begin
Element := Dummy; // Bei jedem Start des Durchlaufs soll wieder auf von vorne gesucht werden
Durchlauf := False; // wenn nichts gefunden wird, soll die Schleife abgebrochen werden
gefunden := false; // da die schleife wieder von vorne anfängt, soll erstmal die zweite while do schleife laufen
While (Element^.nd<> NIL) and (not Gefunden) do // wenn er ende erreicht soll abgebrochen werden
Begin
// in der IF Then Anweisung werden die Werte des aktuellen mit dem nächsten vergleicht.. jeweils 20% kleiner/ größer
// dürfen die Einzelwerte sein, damit die beiden Elemente zusammengelegt werden
If (Element^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
(Element^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8)) and
(Element^.nd^.Nummer < (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 1.2)) and
(Element^.nd^.Nummer > (((Element^.Nummer+Element^.nd^.Nummer) / 2) * 0.8)) Then
Begin
// Sind die beiden Elemente in dem Bereich, dann soll der erste als Wert den Mittelwert beider bekommen
Element^.Nummer := (Element^.Nummer+Element^.nd^.Nummer) / 2;
// 2. Element löschen
tmp := Element^.nd;
Element^.nd := tmp^.nd;
Dispose(tmp);
Durchlauf := true;
gefunden := true;
End; //soll weiter suchen, bis die andere While anforderung erfühlt ist.....
Element:= Element^.nd; // immer ein Element weiter
End;
End;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|