Path: csiph.com!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED!not-for-mail From: Patrick Roemer Newsgroups: de.comp.lang.java Subject: Re: Rekursion bricht nicht ab Date: Sat, 23 Apr 2016 16:05:27 +0200 Organization: news.netcologne.de Lines: 27 Distribution: world Message-ID: References: NNTP-Posting-Host: xdsl-87-78-33-164.netcologne.de Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: newsreader4.netcologne.de 1461420327 29848 87.78.33.164 (23 Apr 2016 14:05:27 GMT) X-Complaints-To: abuse@netcologne.de NNTP-Posting-Date: Sat, 23 Apr 2016 14:05:27 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 In-Reply-To: Xref: csiph.com de.comp.lang.java:12949 Responding to Christian H. Kuhn: Jetzt habe ich auch noch mal sinnentnehmend gelesen. ;) > Ich habe auch dafür die Zeit gefunden. LinkedList als Queue, enthaltene > Objekte sind Paare von Stellung und Zugliste, die zu der Stellung > geführt hat. Initial wird die Ausgangsstellung und eine leere Zugliste > in die Queue getan. While bricht ab, wenn die Queue leer ist. > > In der While-Schleife wird die Stellung und die bisherige Zugliste aus > der Queue entnommen. Wenn die Stellung eine Lösung ist, wird ein > Lösungsobjekt aus der Zugliste gebildet und zurückgegeben. Ob eine Stellung eine Lösung ist, kann man doch schon prüfen, bevor man sie in die Queue einreiht (und sie im Erfolgsfall direkt zurückgeben). > Wenn die Stellung bereits gesehen wurde, wird die While-Schleife > weitergezählt. Dito: Gesehene Stellungen würde ich vor dem Anhängen an die Queue rausfiltern. ("Gesehen" bedeutet dann: Ist (oder war schon mal) in der Queue. Man würde also die neu an die Queue angehängten Kandidaten direkt in das Set der "gesehenen" Stellungen aufnehmen.) Viele Grüße, Patrick