unit mZeichenzaehler;
interface
uses
mListenstruktur, mBinarySearchTree, mZeichenzahl;
type
TZeichenzaehler =
class
private
Zeichenliste: TListe;
Zeichenzahlbaum: TBinarySearchTree;
procedure sortierteListe(pSuchbaum: TBinarySearchTree);
public
constructor create;
virtual;
procedure zaehleZeichen(pText:
string);
function gibSortierteZeichenliste: TListe;
end;
implementation
constructor TZeichenzaehler.create;
begin
inherited create;
Zeichenzahlbaum := TBinarySearchTree.create;
Zeichenliste.Create
end;
procedure TZeichenzaehler.zaehleZeichen(pText:
string);
var Zeichen: char;
i: integer;
NeueZeichenzahl,AlteZeichenZahl: TZeichenzahl;
begin
Zeichenzahlbaum := TBinarySearchTree.create;
for i := 1
to length(pText)
do
begin
Zeichen := pText[i];
NeueZeichenzahl := TZeichenzahl.create(Zeichen);
AlteZeichenZahl := TZeichenzahl(Zeichenzahlbaum.search(NeueZeichenzahl));
if AlteZeichenZahl =
nil
then Zeichenzahlbaum.insert(NeueZeichenzahl)
else AlteZeichenZahl.erhoeheAnzahl;
end;
end;
procedure TZeichenanzahl.sortierteListe(pSuchbaum: TBinarySearchTree);
begin
{
if not pSuchbaum.isEmpty
then begin
sortierteListe(pSuchbaum.getLefttree);
Zeichenliste.Append(pSuchbaum.getItem);
sortierteListe(pSuchbaum.getRighttree)
end; }
end;
function TZeichenanzahl.gibSortierteZeichenliste: TListe;
begin
//Result := Zeichenzahlbaum.getSortedList;
end;
end.