Am 28.07.2017 um 23:31 schrieb tomas@tuxteam.de:
On Thu, Jul 27, 2017 at 07:58:25PM +0200, Urs Liska wrote:
> Hallo zusammen,

[...]

> Was ich also gerne hätte, wäre, dass sich jemand Python-Dateien ansieht,
> die z.B. eine Lösung für die Frage haben "Ist die Eingabe ein korrekter
> BInärer Suchbaum?"

[...]

Ich habe mir die mal angeschaut. Ich nehme mal an, die ist:

  02-data-structures/06-binary-search-trees/is_bst/is_bst.py

Ja.
Allerdings ist die bereits im master-Branch, was bedeutet, dass die Aufgabe schon erfolgreich absolviert wurde (inzwischen, d.h. seit meinem ersten Post).


Bei der Methode is_bst(self, indeex=0) stehe ich noch auf der
Leitung: was soll die Methode als Rückgabewert liefern?
Ich meine: was für eine Art Objekt?

Wenn ich nicht ganz auf der Leitung stehe, dann vermute ich
hier den Knoten :-)

Das ist in der Tat recht kryptisch und hätte wohl eine bessere Kommentierung verdient. Dann hätte ich auch den (allerdings konsequenzlosen) Fehler bemerkt ...
Der Rückgabewert der rekursiven Funktion ist eine Liste mit den Randwerten der linken und rechten Kinder und dem aktuellen Knoten in der Mitte. "Natürlicher" wäre die Rückgabe von "left + [index] + right", wodurch rekursiv eine Liste mit dem gesamten Inhalt des Baums in natürlicher Ordnung entsteht. Diese Liste kann allerdings recht lang werden und kostet offensichtlich zu viel Rechenzeit.

Falsch ist, dass das mittlere Element nicht "[index]" sein dürfte, sondern der tatsächliche Schlüsselwert, nämlich "[self.value(index)]". Da dieser mittlere Wert aber überhaupt nicht gebraucht wird, ist der Fehler nicht aufgefallen. DIESE Aufgabe ist also inzwischen erfolgreich gelöst.

Herzliche Grüße
Urs


(mehr morgen).

lg
-- t
> _______________________________________________ > Freiburger Linux User Group > Mail an die Liste: flug@lug-freiburg.de > Mailingliste verwalten (u.a. abbestellen): https://lug-freiburg.de/mailman/listinfo/flug

--
ul@openlilylib.org
https://openlilylib.org
http://lilypondblog.org