Einzelnen Beitrag anzeigen

Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#3

AW: Programm, das Zeichen in einem Wort zählt - BinarySearchTree

  Alt 13. Nov 2012, 10:03
Den Ansatz mit dem Array find ich zwar klasse, aber ich vermute stark, dass Kudle das mit einem Binärbaum lösen soll. Da ich selbst kein Delphi zur Hand habe habe ich den Code nur mal kurz überflogen, prinzipiell hast du aber in den Units alle notwendigen Klassen zur Hand.

Prinzipielles:
  • TItem ist doppelt deklariert, einmal in mBinarySearchTree.pas, einmal in mItem.pas
  • benötigt man die Klassen aus mListenstruktur? Kann man glaube ich weglassen.
  • grundsätzliches zu einem Binärbaum findest du bspw. hier: https://de.wikipedia.org/wiki/Bin%C3%A4rbaum
  • in den vorhanden Klassen der Binärbaum so implementiert ist, dass die Items, welche angefügt werden, von TItem abgeleitet sein müssen. Dabei müssen die Funktionen isEqual, isGreater, isLess überschrieben werden
    --> dadurch kann der B-Baum die komplette Einsortierung, Suche etc. durchführen, ohne dass du dich noch großartig drum kümmern musst

Grobimplementierung:
  • in deinem Formular benötigst du eine Instanz von mBinarySearchTree
  • in einer Routine jedes Zeichen aus der Eingabe durchgehen und in eine Instanz von TZeichenZahl schreiben
  • diese Instanz an TBinarySearchTree.insert übergeben
  • das Item suchen
  • den Wert um 1 erhöhen
  • wenn du damit fertig bist ist dein Baum gefüllt, nun kann die Ausgabe erfolgen
  • mit getItem, getLeftTree, getRightTree den baum durchgehen und die Werte ausgeben

Ich hoffe mal das passt so, ich konnte es wie gesagt selbst nicht testen und hab mir das alles on-the-fly überlegt
Jonas

Geändert von Aurelius (13. Nov 2012 um 10:15 Uhr)
  Mit Zitat antworten Zitat