?
Sinso schrieb:
Ja das er gar nichts ausgibt, er öffnet die Konsole aber schreibt nichts rein.
Tja... Ich denke, dein Programm hängt in einer Endlosschleife.
Sinso schrieb:
Und diese Anweisung wie ich sie geschrieben habe kann auch nicht stimmen.
In Wikipedia steht : solange (linkeListe und rechteListe nicht leer)
und ich habe geschrieben:
while((flinks[10] && frechts[10]) != 0)
Aber das bedeutet doch das an den beiden Feldern die 10. Position keine 0 enthalten darf, oder ?
Aber in C gibt es sowas wie flinks.length ja nicht, wie soll ich überprüfen ob die beiden Felder (nicht) leer sind?
Das hast du richtig erkannt. Wenn du eine Liste willst, musst du dir selber eine programmieren.
Die andere Möglichkeit ist, du überlegst dir, wie du ein Array als Liste auffassen kannst. Du hast ja bei MergeSort den Vorteil, dass du immer nur am Anfang der Liste entfernst. Du kannst also einfach einen Index speichern, der dir sagt, wo der Anfang der Liste ist. Wenn dieser Anfang hinter das Ende des Arrays zeigt, als in deinem Fall i >= 10 , dann ist die Liste leer.
Genauso das einfügen in die Liste: Du fügst ja immer nur am Ende ein. Also Speicher dir einen anderen Index, der sich merkt, wo das Ende der anderen Liste ist. Und dort kopierst du dann die Elemente hin.
Sinso schrieb:
Und es steht Außerdem noch:
füge erstes Element linkeListe in die neueListe hinten ein und entferne es aus linkeListe
Wie soll ich es aus der linken Liste entfernen ?
Also wie gesagt. Entferne nichts, sondern merk dir einfach, wo der neue Anfang der Liste ist, bzw. das neue Ende.
Eine andere Sache, die du halt machen kannst, wäre es, eine wirkliche Liste zu programmieren.