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